【发布时间】:2019-04-16 12:10:53
【问题描述】:
我的 Web 根目录中有一个名为 docs 的文件夹,我需要确保未经身份验证的用户无法访问此目录中的文件。
我在这个目录中有一个名为 index.php 的文件,用于验证用户是否已登录并相应地提供所请求的文件。
所以为了捕捉文件请求,我在文档中创建了以下 .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。但是我应该无法访问此文件...
谁能告诉我这里做错了什么?
【问题讨论】:
-
你使用的是
apache还是nginx? -
我在本地使用 nginx,在实时服务器上使用 apache
-
好的,但是
.htaccess是一个 Apache 配置文件。它对你的 Nginx 服务器的影响绝对为零。 -
谢谢理查德,但这在服务器上也不起作用
-
听起来您的
.htaccess文件根本没有被处理。删除<IfModule>包装器(你不需要它) - 你得到一个错误吗?如果没有,请尝试在文件中输入废话 - 是否出现错误?