我有根文件夹和成员文件夹,我使用不同的htaccess和不同的htpasswd文件实现了密码保护。
如果单独使用,两个登录都可以正常工作。但如果我登录根文件夹,我就不能登录成员文件夹,反之亦然。尽管凭据是正确的。
根文件夹htaccess文件:
SetEnvIf Request_URI "^/(index'.php)?$" noauth=1
SetEnvIf Request_URI "^/join.php" noauth=1
SetEnvIf Request_URI "^/2257.php" noauth=1
SetEnvIf Request_URI "^/testing.php" noauth=1
SetEnvIf Request_URI "^/style" noauth=1
SetEnvIf Request_URI "^/js" noauth=1
SetEnvIf Request_URI "^/h_footer" noauth=1
SetEnvIf Request_URI "^/images" noauth=1
SetEnvIf Request_URI "^/uploads" noauth=1
SetEnvIf Request_URI "^/contactus.php" noauth=1
SetEnvIf Request_URI "^/epoch/epoch_passmanage.php" noauth=1
AuthType Basic
AuthName "RESTRICTED"
#AuthName "Restricted Area"
AuthUserFile "/path/to/.htpasswd"
require valid-user
Options -Indexes
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)$ /sd3.php?show=true&name=$1 [L]
# Here is where we allow/deny
Order Deny,Allow
Satisfy any
Deny from all
Require valid-user
Allow from env=noauth
成员文件夹htaccess文件:
AuthType Basic
AuthName "RESTRICTED"
#AuthName "Restricted Area"
AuthUserFile "/path/to/different/.htpasswd"
require valid-user
Options -Indexes
Options +FollowSymlinks
RewriteEngine On
RewriteBase /members/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)$ content.php?show=true&name=$1 [L]
在php中,我检查root和成员的登录信息,如下所示:
if (isset($_SERVER['PHP_AUTH_USER'])) {
//logged in: success
}
可能,您的浏览器无法知道它需要提示/提供不同的用户名/密码。
通过更改其中一个的AuthName,它将知道再次提示并提供一组不同的凭据,而不会自动失败。