У меня есть веб-сервер apache (общий хостинг), где у меня есть доступ к /home/user
Если я .htaccess
в /home/user
он применяется ко всем подкаталогам.
Домен, принадлежащий этому, имеет несколько поддоменов, которые ссылаются на подкаталоги этого веб-пространства. Я хочу использовать аутентификацию для некоторых поддоменов, тогда как главная страница не должна содержать паролей. например:
- example.com ->
/home/user/mainPage
<- не должен спрашивать пароль - sub1.example.com ->
/home/user/sub1
<- не должен запрашивать пароль - sub1.example.com ->
/home/user/sub2
<- защищен паролем
Я знаю, что я мог бы поместить файл .htaccess в /home/user/sub2
, чтобы добиться этого, но по разным причинам я не хочу этого делать, но управлять этим можно из "основного" файла .htaccess в /home/user
Кажется, что работает следующий файл .htaccess
:
AuthUserFile /home/user/.passwords
AuthName "Please enter your ID and password"
AuthType Basic
Require valid-user
SetEnvIf HOST "sub2\.example\.com" deny
Order allow,deny
Deny from env=deny
Allow from all
Satisfy any
Вопрос теперь: это безопасный и надежный метод? Или есть ли способ получить доступ к sub2.example.com, не зная правильного имени пользователя / пароля?
(Можно с уверенностью предположить, что файл /home/user/sub2/.htaccess
не будет присутствовать или, по крайней мере, он не будет перезаписывать часть аутентификации.)
Я знаю, что было бы намного проще использовать <Directory>
, но это не разрешено в .htaccess, а только в apache conf, который мне не разрешено редактировать.