我正在尝试对查询字符串中某处具有给定 id 的页面进行密码保护。我的 .htaccess 看起来像这样:
RewriteEngine On
RewriteCond %{QUERY_STRING} id=12
RewriteRule (.*) $1 [E=protected_uri:1]
Order Deny,Allow
AuthName "Protected"
AuthType Basic
AuthUserFile /blabla/.htpasswd
AuthGroupFile /
Require valid-user
Order allow,deny
Allow from all
Deny from env=protected_uri
Satisfy any
这适用于http://xy.com/?id=12,但不适用于http://xy.com/index.php?id=12。对于第二个 URL,不需要密码。
我不知道为什么这行不通,因为 RewriteCond-Line 中的 id=12 应该与其中 id=12 的所有 URL 匹配?
谢谢你的帮助!本