我需要密码保护特定的URL,例如任何人都可以访问index.php,但只要他们添加参数或“GET”变量,我必须要求有效用户。apache密码保护特定的URL
的index.php - >甜
的index.php分组= 1 - >需要有效的用户
我需要密码保护特定的URL,例如任何人都可以访问index.php,但只要他们添加参数或“GET”变量,我必须要求有效用户。apache密码保护特定的URL
的index.php - >甜
的index.php分组= 1 - >需要有效的用户
有趣题。
这里有一个解决方案:
<Location /fakeindex.php>
Order Deny,Allow
Deny from All
Allow from env=REDIRECT_STATUS
AuthType Basic
AuthUserFile /pathto/htpasswd/file/passwords.secret
AuthName This is an example auth
Require valid-user
</Location>
<Directory /path/to/doc/root>
Order allow,deny
allow from all
RewriteEngine On
RewriteCond %{QUERY_STRING} .
RewriteCond %{REQUEST_URI} index.php
RewriteRule .* fakeindex.php [L,QSA]
</Directory>
这一部分:
Order Deny,Allow
Deny from All
Allow from env=REDIRECT_STATUS
,以防止有一个直接访问/fakeindex.php(但其实谁愿意执行的直接访问一个保护区)。这是唯一的。
关键的一点是,论文条件规则检测一个非空的查询字符串,并index.php的一个请求:
RewriteCond %{QUERY_STRING} .
RewriteCond %{REQUEST_URI} index.php
,如果他们匹配规则:
RewriteRule .* fakeindex.php [L,QSA]
重定向在内部将请求保存到/fakeindex.php,并使用QSA保留查询字符串。之后,位置被应用,并且在位置上进行鉴定。
你可以使用isset()方法上得到变量如:
if (isset($_GET['prev'])) {
//load password input form
}
哇!非常感谢你!一个q,但 - 这不能在.htaccess中使用,因为<位置不允许在这种情况下...?此外,我认为我的实际情况是不可能的 - 我需要有相同的文件,当传递任何世界可读的,但是当它通过一个特定的获取变种,它需要一个有效的用户...这是为了减轻整个副本一个不断变化的文件与一个小的PHP变化哈哈...谢谢你这么多无论如何! – lol