.htaccess重定向(如果直接访问文件夹)


.htaccess redirect if folder accessed directly

文件夹结构:

myproject/
 documents/
   1/
    sample.pdf

我允许用户查看.pdf文件,但不允许在直接通过url访问时查看。如果有人直接使用下面的url访问它,它会重定向到被拒绝访问的页面。

http://localhost/myproject/documents/1/sample.pdf

用于实现这一点的代码是

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www'.)?localhost [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www'.)?localhost .*$ [NC] 
RewriteRule '.(pdf)$ denied.php [L]

经过进一步的测试,我发现虽然不允许直接访问文件,但用户仍然可以了解文件上传路径,并可以导航到docuemnt文件夹。

http://localhost/myproject/document/

它列出了所有上传的文件。

如果直接使用URL访问document文件夹或document文件夹下的子文件夹,我如何限制用户。

文件夹中的文件将显示出来,而不管现在是否进行文件夹访问。

您可以在RewriteEngine行下方插入来拒绝直接进入/document URL:

RewriteCond %{THE_REQUEST} /document [NC]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [F]