У меня есть веб-сервер 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, который мне не разрешено редактировать.

0