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

时间:2015-02-07 09:53:48

标签: php apache .htaccess redirect

文件夹结构:

myproject/
 documents/
   1/
    sample.pdf

我允许用户查看.pdf文件,但在直接通过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文件夹或子文件夹,如何限制用户。

无论文件夹访问权限如何,都会显示文件夹中的文件。

1 个答案:

答案 0 :(得分:1)

您可以在RewriteEngine行下方插入以拒绝直接输入/document网址:

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