使用htaccess和htpasswd密码保护在两个不同的文件夹上同时启用两次登录


Enable two logins at same time on two different folders using htaccess and htpasswd password protection

我有根文件夹和成员文件夹,我使用不同的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,它将知道再次提示并提供一组不同的凭据,而不会自动失败。