文件夹结构:
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
文件夹或子文件夹,如何限制用户。
无论文件夹访问权限如何,都会显示文件夹中的文件。
答案 0 :(得分:1)
您可以在RewriteEngine
行下方插入以拒绝直接输入/document
网址:
RewriteCond %{THE_REQUEST} /document [NC]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [F]