Htaccess
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