special

This webpage has been robot translated, sorry for typos if any. To view the original content of the page, simply replace the translation subdomain with www in the address bar or use this link.

Файл настройки доступа к серверу .htaccess

Сайтостроение

Файл настройки доступа к серверу .htaccess

Автор: Максим Приходько
Опубликовано 30 ноября 2005 года

Так как среди серверных систем наиболее популярна операционная система Unix, то и самый распространенный сервер не MS IIS, а Apache (версия которого, правда, существует и для Windows).

Когда в строке браузера вводится имя вашего сайта, именно сервер решает, какие файлы показывать и как. А управлять работой сервера в отношении веб-сайта можно манипулируяфайлом настройки .htaccess, любое изменение которого незамедлительно вступает в силу.

Синтаксис .htaccess имеет жесткую структуру, несоблюдение которого приводит к ошибкам сервера, поэтому необходимо выполнять следующие два требования:

  1. Пути к файлам (директориям) указываются от корня сервера. Например: /opt/home/www.mysite.ru/htdocs/config/.htpasswords

  2. Домены указываются с указанием протокола. Например: 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

';>