htaccess apache mod_rewrite&认证:奇怪的行为

时间:2011-02-23 17:34:46

标签: apache .htaccess mod-rewrite http-authentication

我已经在我的apache服务器上创建了一个基于查询的身份验证,但是我有一个来自apache的奇怪行为,并且无法找到解决方法。这是.htaccess代码:

RewriteEngine on
RewriteCond %{QUERY_STRING} p=1
RewriteRule ^(.*)$ $1?map=$1 [E=authme:1]
Order deny,allow
Deny from env=authme
AuthType Basic 
AuthName "Login Required"
AuthUserFile /var/www/test/.htpasswd
require valid-user
Satisfy any

我希望apache查看p = 1的查询字符串。如果找到了环境变量(authme = 1)。这很好用!
如果查询字符串中存在p = 1,那么我希望认证是必需的(从env = authme中拒绝) 如果从浏览器调用主要的索引文件(在我的情况下是index.php),所有这些东西都可以很好地工作,但是如果调用同一目录中的其他文件,根本不起作用。登记/> 环境变量设置正确(我可以用PHP检查),但不需要验证。

我真的不明白为什么。任何帮助将不胜感激!

可以找到更多信息here

2 个答案:

答案 0 :(得分:0)

在此之后你还有其他重写规则吗?你有没有尝试过它[L]规则?您是否尝试过第二个从未在任何网址上进行过身份验证的浏览器?

答案 1 :(得分:0)

require valid_user

应该是

require valid-user
相关问题