Я настраиваю Trac и хочу защитить паролем страницу входа, как было предложено Вот. Я использую общий хостинг, поэтому я не могу изменить httpd.conf, мне нужно использовать .htacces. Как мне ограничить только страницу входа, не ограничивая другие страницы? Документы Trac предлагают:
<Location "/trac/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /somewhere/trac.htpasswd
Require valid-user
</Location>
Но тег Location предназначен только для httpd.conf, он не работает в .htaccess. Как добиться такого же эффекта? Нет каталога для входа в систему, в который можно было бы поместить файл .htaccess, он должен находиться в основном каталоге trac.
Это всего лишь предположение, но можете ли вы поместить это в файл .htaccess без <Location>
и </Location>
теги внутри каталога / trac / login?
Кроме того, убедитесь, что у вас есть htpasswd
файл вне корня документа (обычно public_html), иначе он может быть загружен и взломан.
Оказывается, у Dreamhost есть страница по этой самой проблеме. Краткий ответ: нет хорошего способа сделать это через конфигурацию apache, поэтому используйте Плагин TracAccountManager вместо.
В apache 2.4 это можно сделать, изменив директиву allow override в корневом httpd.conf или специально для вашего хоста.
https://httpd.apache.org/docs/2.4/howto/htaccess.html
<Directory "/www/htdocs">
AllowOverride All
</Directory>
<Location "/trac/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /somewhere/trac.htpasswd
Require valid-user
</Location>