.htaccess RewriteCond%{REQUEST_FILENAME}

时间:2018-11-13 15:53:26

标签: apache .htaccess nginx

我在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。但是我不应该访问该文件...

有人可以告诉我我在做什么错吗?

1 个答案:

答案 0 :(得分:1)

好吧,我在基于Apache的堆栈上尝试了您的确切代码,并且效果很好

因此您的apache说明没有问题

可能您正在使用php或IDE的内置实时服务器。为此,您需要基于Apache的堆栈,如Lampp,Wampp,Xampp或Mampp。