我在Web根目录中有一个名为docs的文件夹,并且需要确保未经身份验证的用户无法访问此目录中的文件。
此目录中有一个名为index.php的文件,用于验证用户是否已登录并相应地提供所请求的文件。
因此,为了捕获文件请求,我在docs中创建了以下.htaccess文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteRule ^(.*)$ index.php?requested_file=$1 [QSA,L]
</IfModule>
如果我导航到/docs/index.php然后调用index.php,则此方法有效。但是,如果我导航到/docs/cat.jpg,则会直接发送到cat.jpg。但是我不应该访问该文件...
有人可以告诉我我在做什么错吗?
答案 0 :(得分:1)
好吧,我在基于Apache的堆栈上尝试了您的确切代码,并且效果很好
因此您的apache说明没有问题
可能您正在使用php或IDE的内置实时服务器。为此,您需要基于Apache的堆栈,如Lampp,Wampp,Xampp或Mampp。