Файл настройки доступа к серверу .htaccess
Сайтостроение
Файл настройки доступа к серверу .htaccess
Автор: Максим Приходько
Опубликовано 30 ноября 2005 года
Так как среди серверных систем наиболее популярна операционная система Unix, то и самый распространенный сервер не MS IIS, а Apache (версия которого, правда, существует и для Windows).
Когда в строке браузера вводится имя вашего сайта, именно сервер решает, какие файлы показывать и как. А управлять работой сервера в отношении веб-сайта можно манипулируяфайлом настройки .htaccess, любое изменение которого незамедлительно вступает в силу.
Синтаксис .htaccess имеет жесткую структуру, несоблюдение которого приводит к ошибкам сервера, поэтому необходимо выполнять следующие два требования:
- Пути к файлам (директориям) указываются от корня сервера. Например: /opt/home/www.mysite.ru/htdocs/config/.htpasswords
- Домены указываются с указанием протокола. Например: Redirect / http://www.site.ru
Файл должен называться именно "точка" htaccess и быть записан в UNIX-формате. В FAR, например, при редактировании можно нажать Shift+F2 и выбрать пункт меню "Сохранить как UNIX-текст".
Приведем простые примеры управления доступа к сайту с использованием файла .htaccess:
Запрет на все файлы:
deny fromall
Здесь all обозначает "все".
Разрешить доступ с определенного IP-адреса (например, 192.13.237.14):
order allow deny
deny from all
allow from 192.13.237.14
Запретить доступ с определенного IP-адреса (например, 192.13.237.14):
order allow deny
allow from all
deny from 192.13.237.14
Запрет на группу файлов по маске:
<Files "\.(inc|sql|другиерасширения)$">
order allow,deny
deny from all
</Files>
В данном примере сам веб-сервер "Апач" может обращаться к файлам с указанными расширениями.
Можно установить запрет на конкретный файл по его полному названию (например, config.inc.php):
<Files config.inc.php>
order allow,deny
deny from all
</Files>
Парольнадиректорию:
AuthName "Private zone"
AuthType Basic
AuthUserFile /pub/home/логин/.htpasswd
require valid-user
</Files>
Значение AuthName будет выводиться для посетителя и может использоваться для пояснения запроса авторизации. Значение AuthUserFileуказывает на место, где хранится файл с паролями для доступа к данной директории. Этот файл создается специальной утилитой htpasswd.exe.
Например в директории, которую защищаем паролем создаем .htaccess со следующим содержанием:
AuthName "For Registered Users Only"
AuthType Basic
AuthUserFile /pub/home/yoursite.ru/.htpasswd
require valid-user
</Files>
В этом примере посетитель при запросе директории будет видеть фразу "ForRegistered Users Only", файл с паролями для доступа должен лежать в директории /pub/yoursite.ru/ и называться .htapasswd . Директория указывается от корня сервера. Если вы неправильно укажете директорию, то Apacheне сможет прочитать файл .htpasswd и никто не получит доступа к данной директории.
Аналогично защите целой директории можно установить пароль только на один файл. Например, для защиты файла private.zip необходимо в файле .htaccess указать следующую информацию:
<Files private.zip>
AuthName "Users zone"
AuthType Basic
AuthUserFile /pub/home/логин/.htpasswd
</Files>
Аналогично, используя команду <Files "\.(inc|sql|другие расширения)$">, можно указывать пароли по маске файлов. Например, для установки пароля на доступ ко всем файла с расширением .sql необходимо указать следующую информацию:
<Files "\.(sql)$">
AuthName "Users zone"
AuthType Basic
AuthUserFile /pub/home/yoursite.ru/.htpasswd
</Files>
Для того чтобы сделать перенаправления посетителя на сайт http://www.site.ru, в .htaccess необходимо указать:
Redirect / http://www.site.ru
Продолжение следует...
Дата створення/оновлення: 25.05.2018