我需要密碼保護特定的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