проверить домен
ваша почта
панель управления
Оплата Заказать

Справочник  / FAQ

Если в данном разделе вы не нашли ответ на интересующий вас вопрос, задайте его в Службу технической поддержки пользователей по адресу info@timeweb.ru.

Файл .htaccess


Файл .htaccess (с точкой в начале) является системным файлом, который позволяет задать параметры веб-сервера Apache на уровне директории.

Директивы файла .htaccess управляют доступом к каталогу, определяют перенаправления (редиректы), устанавливают значения некоторых переменных PHP, а также выполняют другие различные настройки веб-сервера. Файл .htaccess можно расположить в любой директории сайта, при этом его директивы будут распространяться на все подкаталоги этой директории, если для них не был определён свой файл .htaccess.

Файл .htaccess является скрытым по умолчанию. Отображение скрытых файлов отключено в нашем Файловом менеджере, редактирование .htaccess необходимо осуществлять, используя доступ по FTP или SSH.


Создание .htaccess в Windows

Для создания файла используйте любой текстовый редактор. При сохранении файла вы можете задать имя файла .htaccess либо сохранить файл с произвольным названием и переименовать его после загрузки на сервер.
Файл необходимо сохранить в кодировке UTF-8 без использования сигнатуры BOM. В противном случае, лишние байты сигнатуры BOM приводят к тому, что веб-сервер не может обработать файл .htaccess, и возникает ошибка 500 при обращении ко всем файлам директории и подкаталогам. Многие текстовые редакторы, например Notepad++ и Akelapad, позволяют задать сигнатуру BOM при сохранении файла.


Настройка параметров php в файле .htaccess

Значения некоторых переменных PHP возможно задать на уровне директории, используя директивы php_flag для булевых значений (on или off) и php_value для строковых и числовых. Подробный список доступным переменных PHP_INI_PERDIR вы можете найти на официальном сайте.

Наиболее часто встречающиеся настройки PHP, которые возможно установить в файле .htaccess:

1. Отключение глобальных переменных:
php_flag register_globals off

2. Отключение функции Magic quotes:
php_flag magic_quotes_gpc off

3. Включение вывода ошибок:
php_flag display_errors on

4. На виртуальном хостинге Timeweb вы также можете установить параметры для расширения mbstring (например, это часто требуется для установки юникод-версии Битрикс):
php_value mbstring.func_overload 2
php_value mbstring.internal_encoding UTF-8

Часто встречающиеся задачи

Файл .htaccess позволяет выполнить на уровне директории такие задачи, как: установка индексной страницы сайта, реализация редиректа страницы на другой адрес или перенаправления в подкаталог.

Установка индексной страницы сайта

Переопределение индексного файла каталога в .htaccess осуществляется директивой DirectoryIndex:

DirectoryIndex main.php
(в качестве индексной страницы задается файл main.php)

Для установки индексной страницы, расположенной в подкаталоге /directory основного сайта (/public_html), используется следующая конструкция:

DirectoryIndex /public_html/directory/index.php

Чтобы запретить вывод содержимого каталога при отсутствии индексной страницы, необходимо прописать в .htaccess:

Options -Indexes

Перенаправления (редиректы)

Подробная документация по использованию перенаправлений веб-сервера Apache представлена на сайте разработчиков веб-сервера Apache.

1. Простой редирект

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

Redirect 301 / http://example.com/index.html

где Redirect 301 – инструкция, сообщающая, что страница перемещена постоянно;
http://example.com/index.html — адрес страницы, на которую происходит перенаправление.

Использование 301 редиректа обеспечивает сохранение рейтинга сайта в поисковых системах.

Аналогичный синтаксис простого редиректа:

Redirect permanent / http://example.com/index.html

2. Редиректы с использованием mod_rewrite

Это редирект на другой домен. Он используется для переадресации запроса страницы на другой адрес.

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

RewriteCond задает условие, при котором происходит выполнение правила, указанного в RewriteRule, то есть, при запросе любой страницы www.example.net или example.net будет осуществлён переход на адрес example.com.

С помощью этих директив также можно выполнить перенаправление доменов с www на домен без www.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule (.*) http://example.com/$1 [R=301]

Выполняется пренаправление с домена www.example.com на домен example.com

3. Перенаправление в подкаталог

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

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^forum\.example\.com$
RewriteCond %{REQUEST_URI} !/forum/
RewriteRule ^(.*)$ /forum/$1 [L]

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

Для установки собственных страниц ошибок используется директива ErrorDocument.

ErrorDocument 404 /404.html

где 404 — код ответа, /404.html — относительный путь к странице ошибки.

Полный список ответов от сервера представлен на сайте организации IANA.

Запрет доступа к файлам

Для реализации запрета доступа с определенных IP-адресов используются директивы Order Allow, Deny:

Order Allow, Deny
allow from all
deny from 192.168.0.1, 192.168.0.2

где директива "allow from all" разрешает доступ со всех адресов, а "deny from 192.168.0.1, 192.168.0.2" запрещает доступ с адресов 192.168.0.1 и 192.168.0.2