Назад | Перейти на главную страницу

.htaccess не действует

Я теряю часы с этой простой задачей (должно быть). Я хочу ограничить доступ к своему веб-сайту, который находится на моем сервере в / var / www /.

Я успешно создал файл / etc / apache2 / passwords с помощью httpasswd (пользователь primoz). Я поместил .htaccess в / var / www /, и вот его содержимое:

AuthType Basic
AuthName "RestrictedFiles"
AuthBasicProvider file
AuthUserFile /etc/apache2/passwords
Require user primoz

Мой сайт все еще доступен. Я также попытался отредактировать строку / etc / apache2 / sites-enabled / 000-default - AllowOverride Нет к AllowOverride All. Не нужно упоминать, что никаких изменений он не вносил.

Должно ли ограничение действительно расстраивать?

РЕДАКТИРОВАТЬ: /etc/apache2/httpd.conf по умолчанию пусто, потому что я запускаю сервер на Debian, который вместо этого использует apache2.conf.

Вот это весь apache2.conf.

Я смог решить эту проблему. Конфигурация в / и т.д. / apache2 / сайты-включен / 000-по умолчанию было AllowOverride Нет вместо того AllowOverride All.

Я был уверен, что изменил это, но думаю, я вернул файл, когда он не работал (не помню почему - возможно, что-то еще было неправильно настроено). В любом случае, первый абзац - это решение.

Включить .htaccess через httpd.conf а затем поместите этот код в свой .htaccess под DOCUMENT_ROOT каталог:

AuthType Basic
AuthName "RestrictedFiles"
AuthUserFile /etc/apache2/passwords
Require valid-user

Также убедитесь, что mod_authn_core включен.

Просто посмотрите на мой (который сейчас используется):

AuthUserFile /var/www/www.site.com/htdocs/.htpasswd 
AuthName Password_secure
AuthType Basic
require valid-user

Вам также следует отредактировать свой apache2.conf и убедитесь, что включены следующие параметры:

LoadModule rewrite_module modules/mod_rewrite.so

И варианты / позволяет:

<Directory /your/path>
  Options FollowSymLinks
  AllowOverride All
  Order deny,allow
  Deny from all
  Satisfy all
</Directory>

Если это для виртуального хоста, тогда этот блок должен находиться внутри <VirtualHost></VirtualHost> теги.

Помимо этого, трудно понять, что вызывает у вас проблемы, не глядя на полную apache2.conf