.htaccess — это конфигурационный файл веб-сервера Apache, позволяющий управлять работой веб-сервера и настройками сайта с помощью различных параметров (директив) без изменения основного конфигурационного файла веб-сервера.
На хостинге Руцентра в настоящее время используется веб-сервер Apache версии 2.4.
Директивы файла .htaccess действуют для каталога, в котором размещён такой файл, а также для всех его подкаталогов. Если вы желаете с помощью .htaccess изменить настройки для сайта в целом, его следует размещать в корневом каталоге сайта ~/ваш_домен/docs.
1. Ограничение доступа к сайту по IP
Запретить доступ к сайту с IP-адресов 123.4.5.6 и 123.5.4.6:
Запретить доступ к сайту со всех IP-адресов, кроме 123.4.5.6 и 123.5.4.6:
Запретить доступ к сайту для всех:
2. Переопределение главной страницы сайта (индексного файла каталога)
Сделать главной страницей файл menu.html:
3. Включение обработки PHP в .html-файлах
4. Включить выполнение CGI-скриптов в папке docs для файлов с расширениями .cgi, .pl, .py
В папке с CGI-скриптами необходимо разместить файл .htaccess с содержимым:
Скрипт должен иметь атрибут исполнения (+x, права доступа, начинающиеся с 7; к примеру, 755). Атрибуты (права доступа) можно изменить с помощью файлового менеджера панели управления, FTP-клиента или по SSH. Также в разделе «Веб-сервер» → «Управление модулями» должен быть включён модуль CGI.
5. Блокировка переходов со сторонних ресурсов
Для запрета перехода с baddomain.ru на domain.ru добавьте в .htaccess следующее:
Если требуется запретить переходы с нескольких доменов, то используйте следующие директивы:
6. Особенности использования кириллических доменов (.рф, .москва и др.)
В файле .htaccess использование кириллицы не допускается. При составлении правил перенаправления для кириллических доменов необходимо указывать имя домена в punycode. Узнать имя домена в punycode можно с помощью сервиса Whois.
Например, для перенаправления с site.ru на сайт.рф нужно воспользоваться следующим правилом:
В этом случае ваши посетители могут увидеть домен именно в представлении punycode в адресной строке браузера. Это не является ошибкой.
1. Перенаправление доменов с синонима сайта на основной домен с кодом 301
Перенаправить запросы на domain.ru с любого из синонимов сайта:
Перенаправить запросы на www.domain.ru с любого из синонимов сайта:
Эти правила рекомендуется размещать в самом начале файла .htaccess.
2. Постоянное перенаправление с кодом 301
Если вы изменили адрес страницы сайта, добавьте в .htaccess следующие строки, чтобы запросы со старого адреса переадресовывались на новый:
где:
Например, для перенаправления всех запросов к странице /period/?test=123 вашего сайта на domain.ru вы можете прописать:
3. Постраничное перенаправление запросов на другой домен с кодом 301
Следующие правила перенаправят все запросы к страницам вашего сайта на аналогичные страницы другого сайта. Например, запрос к http://domain.ru/main будет переадресован на http://www.newdomain.ru/main:
либо:
4. Перенаправление с одной страницы на другую с кодом 301
Добавьте в .htaccess следующие строки:
где:
5. Перенаправление для отдельного IP с кодом 301
Добавьте в .htaccess следующие строки:
где:
6. Перенаправление с кодом 301 с главной страницы за исключением остальных страниц сайта
В файл .htaccess, находящийся в папке сайта, с которого необходимо выполнить переадресацию, добавьте следующие строки:
7. Перенаправление с кодом 301 со всех страниц сайта за исключением главной
В файл .htaccess, находящийся в папке сайта, с которого необходимо выполнить переадресацию, добавьте следующие строки:
8. Перенаправление с массовой склейкой
Если вам необходимо сделать перенаправление на index.php с помощью .htaccess, введите:
где site.ru - домен вашего сайта.
9. Перенаправление с http:// на https:// и обратно
Перенаправить запросы на https://domain.ru:
Перенаправить запросы на http://domain.ru:
Если после редактирования или размещения .htaccess при обращении к сайту вы получили ошибку 500, то, скорее всего, в файле .htaccess допущена ошибка, проверить это достаточно легко, переименовав ваш файл .htaccess, например, на имя .htaccess_old и после этого проверить работу сайта повторно. Если сайт работает то причина именно в некорректной настройке файла .htaccess.
Посмотреть причины возникновения ошибки вы можете в лог-файле /var/log/ваш_домен.error_log.
С подробной документацией вы можете ознакомиться на сайте разработчика веб-сервера Apache: http://httpd.apache.org/docs/2.4/rewrite/