Раздел помощи SpaceWeb
Поиск:     Расширенный поиск

Файл .htaccess

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

  • Осуществление переадресации на другой домен
  • Ограничение доступа к сайту
  • Изменение значений директив PHP
  • Отображение собственных страниц ошибок

Редактирование файла .htaccess поможет в осуществлении следующих задач:

Домены с кириллическими символами

При использовании кириллических доменных имён в файле .htaccess, их необходимо указывать в формате Punycode. Перекодировать их можно с помощью данного сервиса.

Организация переадресации с одного сайта на другой

Для организации переадресации с одного сайта на другой достаточно добавить следующие строки в файл .htaccess:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?from\.com$
RewriteRule ^(.*)$ http://to.com/$1 [L,R=301]

где from\.com — имя домена, с которого должна осуществляться переадресация, а "to.com" - ее цель.
При этом экранирование символа точки обратной косой чертой \ во второй строке не является обязательным.

Переадресация поддомена в подкаталог сайта

Организация переадресации запросов на поддомен в подкаталог сайта осуществляется путем добавления в файл .htaccess следующих строк:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} (www\.)?img\.example\.com $
RewriteCond %{REQUEST_URI} !img/
RewriteRule ^(.*)$ img/$1

где img\.example\.com нужно заменить на имя поддомена, с которого должна осуществляться переадресация, а img на имя подкаталога, в котором находятся файлы поддомена. При этом экранирование символа точки обратной косой чертой \ в третьей строке не обязательно.

Переадресация с протокола HTTP на протокол HTTPS

Переадресация с протокола HTTP на протокол HTTPS осуществляется добавлением кода в .htaccess файл:

RewriteEngine on
RewriteCond %{HTTP:HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://www.example.ru/$1 [R=301,L]

и наоборот, с HTTPS на HTTP:

RewriteEngine on
RewriteCond %{HTTP:HTTPS} =on [NC]
RewriteRule ^(.*)$ http://www.example.ru/$1 [R=301,L]

Ограничение/разрешение доступа к сайту с определённых IP-адресов

Для ограничения доступа к сайту с определённых IP-адресов в файл .htaccess требуется добавить:

Order Allow,Deny
Allow from all
Deny from IP

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

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

Order Deny,Allow
Deny from all
Allow from IP

где IP — IP-адрес, для которого будет разрешён доступ, или список таких IP-адресов перечисленных через символ пробела.

Ограничение доступа к определённым файлам

Настройка ограничения доступа к определённым файлам производится путем добавления в .htaccess файл:

<Files ПУТЬ_К_ФАЙЛУ>
Order Deny,Allow
Deny from all
Allow from IP
</Files>

где ПУТЬ_К_ФАЙЛУ - необходимо заменить на целевой файл, а IP — на IP-адрес, для которого будет разрешён доступ.

Назначение кодировки для заголовков отдаваемых сервером по умолчанию

Для назначения кодировки для заголовков отдаваемых сервером по умолчанию достаточно добавить:

AddDefaultCharset utf-8

Затруднения с отображением кодировок, как правило, связаны с тем, что устаревшее ПО (сайт, CMS) использует кодировку отличную от той, на работу с которой сконфигурирован сервер. Данная директива может помочь в устранении данной ошибки.

Корректная установка CMS Bitrix

Для корректной установки CMS Bitrix в файле .htaccess необходимо указать следующее :

php_value mbstring.internal_encoding UTF-8
php_value mbstring.func_overload 2
php_value max_input_vars 10000
php_value pcre.recursion_limit 1000

Изменение значений директив register_globals или magic_quotes_gpc

Если используетcя PHP, установленный как модуль веб-сервера Apache, и не используются глобальные переменные, рекомендуется отключать опцию register_globals в целях безопасности. Отключение register_globals производится внесением в файл .htaccess строки:

php_flag register_globals off

В том случае, если "волшебные кавычки" включены, то спецсимволы, к примеру, такие как одиночные и двойные кавычки. будут экранироваться обратными слэшами "\", что не всегда удобно. В версиях PHP 5.4.0. и выше данная директива не поддерживается. Для отключения "волшебных кавычек" в .htaccess следует добавить строку:

php_flag magic_quotes_gpc off

Отображение возникающих ошибок PHP на странице

Иногда для произведения анализа работы сайта может потребоваться отображение возникающих ошибок PHP в браузере. Эту задачу можно решить добавлением двух строк в файл .htaccess:

php_flag display_errors on
php_value error_reporting -1

Указание собственной страницы ошибок

Установка собственных страниц ошибок возможна с помощью директивы ErrorDocument. После ErrorDocument указывается номер ошибки и путь к странице с ошибкой (либо текстовое сообщение). Примеры использования:

ErrorDocument 404 /errors/not_found.php
ErrorDocument 401 /info.html
ErrorDocument 403 "you shall not pass
"
ErrorDocument 500 http://example.com/500.php

Временное отключение кеширования OPCache

php_value opcache.revalidate_freq 0

enlightened Полный список и подробности того, какие директивы доступны для редактирования через файл .htaccess, предоставлены в официальной документации PHP и веб-сервера Apache2 по следующим ссылкам:


Не нашли ответ на свой вопрос? Позвоните нашим специалистам по бесплатному телефону 8-800-100-16-15.