Htaccess

Материал из RUSTEKO WIKI
Версия от 13:09, 26 февраля 2019; Danil (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

htaccess не работает

Вы создали в директории с сайтом файл .htaccess, но чтобы вы туда не писали, ни одна директива не работает. Почему?

Скорее всего здесь виновата опция AllowOverride в apache.

Куда же ее вставлять?

Заходим в конфигурационный файл Apache — httpd.conf. В FreeBSD он располагается здесь:

/usr/local/etc/apache/httpd.conf

В других системах расположение другое. Но в целом не так трудно его найти:)

Находим такой блок <Directory «путь до директории с вашим htaccess»>…</Directory>, если нет то создаем его:

<Directory «/usr/local/www/apache22/data/site.ru»>
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Если есть, то добавляем либо меняем опцию AllowOverride:

AllowOverride All
/usr/local/www/apache22/data/site.ru — это абсолютный путь до вашей директории, где лежит файл .htaccess
AllowOverride All — здесь сказано что если существует файл .htaccess, то все (All) директивы прописанные в нем выполнять. Кстати если не хотите чтоб сервер читал файл .htaccess то замените «All» на «None».
Allow from all — доступ к папке имеют все.

После того как добавили блок с описанием вашей директории перезапускаем apache.

Теперь все директивы в файле .htaccess должны отрабатывать.

Если Вы хотите сделать базовую авторизацию на уровне apache - серевера Вам необходимо сгенерировать .htpasswd файл. Действие файлов .htaccess распространяется на текущую директорию и на все поддиректрии, лежащие уровнем ниже. Данный пароль сгенерирован при помощи htpasswd и подходит для Linux и Windows Скопируйте эту строку в ваш .htpasswd файл:

admin:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Помните, только одна запись может быть в строке! Для ограничения доступа к выбранной директории скопируйте эти строчки в ваш .htaccess файл:

AuthType Basic
AuthName "Thats protected Area!"
AuthUserFile /usr/host/mysite/.htpasswd
Require valid-user
<Files .htpasswd>
  deny from all  #запрет доступа из браузера к .htpasswd
</Files>


После этого необходимо создать файл .htpasswd, путь до которого мы как раз и указываем в предыдущем файле. Данный файл хранит в себе информацию с именем пользователя и паролем, который прописывается в формате хеша и выглядит примерно так:

Создание .htpasswd файла

htpasswd -c /var/www/html/.htpasswd admin