У меня есть корневая папка и папка членов, я реализовал защиту паролем как с использованием другого 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 на одном из них, он будет знать, чтобы снова запросить и предоставить другой набор учетных данных, без сбоев.
Других решений пока нет …