Другие

Создание и настройка .htaccess

Общие сведения

.htaccess - конфигурационный файл Apache. С его помощью можно задавать настройки веб-сервера для определенных каталогов.

Указанные в .htaccess настройки действуют только на каталог, в котором размещен этот файл. На основной конфигурационный файл Apache это никак не влияет. Для различных подкаталогов также можно создавать различные файлы .htaccess. Файл .htaccess, расположенный в подкаталоге, имеет преимущество перед файлом, размещенным в каталоге. 

В этой статье Вы можете ознакомиться с типовыми перенаправлениями.

Управление доступом к сайту

Директивы Order Allow, Deny или Require используются для управления доступом. В версиях Apache новее 2.4 рекомендуется использовать Require.

Директивы запрета доступа не работают для IPv6 (необходимо удалить АААА-запись домена).

Для разрешения доступа определенным IP (остальным запрещен):

Require ip 1.1.1.1

Require ip 2.2.2.2

IP-адреса можно указывать через пробел в одной строке, либо записывать еще одну директиву.

Для запрещения доступа определенным IP (остальным разрешен): 

<RequireAll>

Require all granted

Require not ip 1.1.1.1

</RequireAll>

Запрещающие директивы находятся внутри блоков <RequireAll>.

Защита сайта или директории паролем. Базовая аутентификация.

В файле .htaccess также можно настроить базовую аутентификацию для защиты сайта или каталога.

1. Установите логин и пароль для входа. Подключитесь к серверу по SSH и выполните:

htpasswd -bc ~/.htpasswd логин пароль

В результате в корневой директории будет создан файл .htpasswd, содержащий логин и хэш-сумму пароля. Для изменения пароля можно использовать эту команду повторно.

2. Перейдите в каталог, для которого будет устанавливаться доступ по паролю. Создайте здесь файл .htaccess и добавьте в него:

AuthType Basic

AuthName "Authentication Required"

AuthUserFile /home/u/user/.htpasswd

require valid-user

u - первая буква вашего логина

user - логин

Для защиты всего сайта вставьте это содержимое в основной файл .htaccess в каталоге public_html сайта.

Блокировка запросов по User-Agent

Также для снижения нагрузки на сайт можно ограничить доступ по User-Agent. Например, для ботов MJ12bot и SolomonoBot введите:

RewriteCond %{HTTP_USER_AGENT} (SolomonoBot|MJ12Bot)

RewriteRule ^.*$ - [R=404,L]

Ограничения по видам запросов

Блоки <Limit> используются для ограничения определенных видов запросов:

SetEnvIfNoCase User-Agent SolomonoBot bad_bot

SetEnvIfNoCase User-Agent MJ12Bot bad_bot




<Limit GET POST HEAD>

    <RequireAll>

    Require all granted

    Require not env bad_bot

    </RequireAll>

</Limit>

Индексная страница по умолчанию

Директива DirectoryIndex задает страницу, которая выводится по умолчанию при обращении к директории:

DirectoryIndex new_index.html

Если указать несколько страниц, будет отображена первая доступная страница (слева направо):

 DirectoryIndex new_index.html index.html index.php

Собственные страницы ошибок

ErrorDocument задает страницы, которые отображаются пользователю при определенных ошибках (403, 404, 500 и т.д.).

Укажите номер ошибки и адрес страницы:

ErrorDocument 500 http://domain1.com/errors/page500.html

Кодировка

C помощью AddDefaultCharset можно задать кодировку по умолчанию для всех страниц. Например, для кодировки utf-8:

 AddDefaultCharset utf-8

Отображение листинга (содержимого директории)

При недоступности индексного файла запрашиваемой директории будет отображена ошибка 403 Forbidden. Чтобы отображалось содержимое директории, добавьте в .htaccess:

Options +Indexes

Настройка VPS.

Если у Вас остались вопросы - создайте тикет в техподдержку.