.htaccess

Файл .htaccess является обычным текстовым файлом, и создать его можно в любом текстовом редакторе, не использующем функций сохранения форматирования текста. Для наших целей вполне подойдет «Блокнот» из комплекта Windows, а вот Word не подойдет.

Итак, закрываем доступ. Для этого создаем новый текстовый документ с именем .htaccess и пишем в него такую строчку:

deny from all

сохраняем файл в выбранной папке на сервере, и никто не сможет получить доступ ни к одному файлу из этой папки, включая все вложенные папки. Но Вы тоже не сможете получить доступ к этим файлам, а это не есть хорошо. Если Вы работаете с определенного IP-адреса, можно разрешить доступ для себя таким образом:

order deny,allow
deny from all
allow from 213.145.130.1

Теперь доступ будет открыт, в том случае если запрос пришел с IP 213.145.130.1, но и этот вариант не удобен. Если вы работаете через Dial-Up у Вас IP-адрес динамический.
Можно открыть доступ для определенного хоста. Например:

order deny,allow
deny from all
allow from .mysite.com

доступ будет открыт в том случае, если запрос пришел с хоста mysite.com Можно ограничить доступ не только ко всем файлам в папке, но и к определенным файлам или файлам определенного типа. Это нужно, для того чтобы закрыть доступ к файлам с паролями, настройкам скрипта, информации для подключения к базе данных и т.п
Может случиться такая ситуация когда Вы делаете папку к которой должны иметь доступ только Вы или еще несколько пользователей. Причем, пользователи не меняются часто и не имеет смысла использовать скрипты как в гостевых книгах или форумах. Например, это будет раздел сайта только для администраторов. В этом случае средствами Apache можно поставить пароль на директорию и использовать мы будем уже два файла, а именно .htaccess и .htpasswd. В первом из них мы пропишем ограничение доступа, а во втором будем хранить пароли и логины.

Сначала создаем файл .htaccess со следующим содержанием:

AuthName "Вход только для администраторов"
AuthType Basic
AuthUserFile /home/mysite/public_html/.htpasswd
require valid-user

где AuthUserFile /home/mysite/public_html/.htpasswd – путь к файлу с логинами и паролями доступа к этой директории. Затем создаем файл .htpasswd, в котором пишем логин и пароль разделенные двоеточием. Пример написания:

admin:password

и сохраняем его в том месте, на который указывает путь AuthUserFile /home/mysite/public_html/.htpasswd, а файл .htaccess сохраняем в защищаемой директории и после обращения к этой директории браузер выведет стандартную форму аутентификации, в которую нужно будет ввести имя и пароль для доступа.

В этой ситуации можно дополнительно защитить пароль, зашифровав его с помощью алгоритма MD5. Удобнее всего это будет сделать с помощью специальной утилиты входящей в поставку web-сервера Apache. Называется она htpasswd.exe и находится в папке bin Apache. Если у Вас нет дистрибутива Apache – Вы можете скачать эту утилиту здесь.

Теперь запустите ее из командной строки: htpasswd.exe -cm .htpasswd admin, где:

-cm – это команды на создание файла с использованием MD5;
.htpasswd – имя файла, который будет создан;
admin – имя пользователя.

После запуска Вам будет выдан запрос на ввод пароля и подтверждение. В результате будет создан файл .htpasswd примерно такого содержания:

admin:$apr1$9o0.....$3nAi6rAX1RtHDzL7PPW/i/

что соответствует логину – admin и паролю – password
Кстати таким образом можно закрывать не только директории, но и отдельные файлы или группы файлов. При добавлении пользователя в существующий файл команду –cm нужно изменить на –m.

Теперь я хочу сказать несколько слов об обработке ошибок сервером Apache. Такими ошибками являются страницы 401, 403, 404, 405 и 500. Попадание пользователя на такую страницу очень вредит Вашему сайту. Вы теряете целевого посетителя Вашего сайта. Поэтому рекомендую Вам создать альтернативные страницы обработки ошибок, где будет дана возможность перейти на другую страницу сайта или связаться с Вами. А чтобы обработка ошибок производилась с помощью Ваших страниц, создайте файл .htaccess такого содержания:

ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

и сохраните его в корневой папке вашего сайта. Единственное ограничение – размер страниц. Если они будут меньше чем 512 байт, то сервер выдаст свое сообщение об ошибке.

Возможности настройки web-сервера Apache с помощью файла .htaccess не ограничиваются теми директивами, которые я привел в этой статье. Все возможности настройки Вы можете найти в руководстве пользователя по Apache.
Сайт автора http://irus.h2m.ru

URL: https://visavi.net/articles/127