【发布时间】:2010-12-09 04:33:16
【问题描述】:
我有一个网站,在 /foo/bar/ 中有一堆文档和 pdf 文件
目录浏览已关闭,因此您必须知道特定的 URL/URI 组合才能获取文档。我想找到一种方法将所有请求重定向到 /foo/bar/ 到一个 php 页面,该页面检查他们的 auth cookie 是否已设置,如果是,则获取他们的文件。当然,如果请求是针对auth_test.php,我还需要触发规则not,以防止循环。我一直在与 /foo/bar/ 中的 .htacess 作斗争,但我根本无法让它工作。相比之下,mod_rewrite 使正则表达式看起来清晰明了。
这是我当前的 .htaccess 文件(在 /foo/bar/ 中):
RewriteEngine On
RewriteRule !^auth_test\.php$ /foo/bar/auth_test\.php?q=$1 [R=301,L]
这成功地适用于对/foo/bar/auth_test.php 的请求,但是对/foo/bar/something 的请求将我发送到/foo/bar/auth_test.php?q=
这就像 $1 甚至没有被捡起。此外,如果文件存在,则似乎会忽略此规则,因此对 /foo/bar/mydocumnent.doc 的请求会导致用户被提示下载请求的文件。我什至尝试添加
RewriteCond %{REQUEST_FILENAME} -f
为了防止这种情况发生,但这似乎不起作用。我在这里完全不知所措。有什么建议吗?
【问题讨论】:
标签: php apache .htaccess mod-rewrite