Для чего нужен файл .htaccess.htaccess (сокращение от «hypertext access») — это дополнительный конфигурационный файл для Apache. Веб-сервер должен учитывать параметры, указанные в файле, когда обрабатывает запрос. Параметры, указанные в .htaccess, не затрагивают настройки главного конфигурационного файла Apache — httpd.conf. Они влияют только на каталоги (и их подкаталоги), в которых этот файл размещен. Где находится файл .htaccess? Если вам нужно, чтобы настройки .htaccess работали для всего сайта, разместите его в корневом каталоге. Для подкаталогов тоже можно создавать .htaccess-файлы, но учтите, что они будут мешать настройкам файла .htaccess, размещенным на уровне выше. Если вы используете CMS, скорее всего, этот файл был создан программой автоматически и чаще всего его можно найти в папке «public_html» или «www». Что можно сделать с помощью .htaccess
Как работает .htaccessКогда веб-сервер получает запрос, например, данные определенной страницы сайта, сначала он проверяет, есть ли .htaccess в файлах сайта. Проверка начинается с корневого каталога и затем всё ниже и ниже по иерархии папок. Если файл найден, веб-сервер изучает команды, описанные в .htaccess, и применяет их при дальнейшей обработке запроса. Как выглядит .htaccess.htaccess — простой текстовый файл, где в каждой строке указана команда (директива). Пустые строки игнорируются. Символ «#» в начале строки — комментарий. Система не читает эти строки. Их используют для удобства, чтобы описать смысл конкретной команды или блока. Как создать .htaccessМногие CMS (WordPress, Joomla, 1С-Битрикс и другие) создают файл .htaccess автоматически. Найти его можно в корневой папке в панели управления хостингом. Обычно он пустой или с парой комментариев. То есть вы сразу можете начинать работу с нужными командами. Если же сайт был написан с нуля или вы случайно удалили существующий файл, нужно:
Этап 1. Создайте файл .htaccess: инструкция для WindowsЕсли вы работаете на Windows, создать .htaccess можно в Блокноте.
Этап 2. Разместите файл на хостинге SpaceWebКогда файл готов, его нужно разместить на хостинге в корневом или обычном каталоге.
Этап 3. Сообщите Apache, что он должен использовать .htaccessЧтобы Apache использовал в своей работе файл .htaccess, в httpd.conf нужно добавить строку: AllowOverride All
Настройка .htaccessА теперь покажем, какие директивы (команды) для настройки .htaccess могут вам понадобиться для сайта. Редиректы
Переадресация на другой доменУкажите в файле .htaccess: RewriteEngine On
RewriteCond %{HTTP_HOST} olddomain.ru RewriteRule (.*) http://newdomain.ru/$1 [R=301,L] Где:
Переадресация сайта с HTTP на HTTPSОбратите внимание, что перенаправление с HTTP на HTTPS нужно делать в файле .htaccess в корневой папке сайта. Введите: RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] Переадресация поддомена в подкаталог сайтаЧтобы настроить переадресацию запросов на поддомен в подкаталог сайта добавьте в файл .htaccess строки: RewriteEngine on
RewriteBase / RewriteCond %{HTTP_HOST} (www\.)?img\.example\.com$ RewriteCond %{REQUEST_URI} !img/ RewriteRule ^(.*)$ img/$1 Где: Ограничение или разрешение доступа к сайту с определенных IP-адресовЧтобы ограничить доступ к сайту с определенных IP-адресов в файл .htaccess добавьте: Order Allow,Deny
Allow from all Deny from 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> Где:
Назначение кодировкиДля этого добавьте строку: AddDefaultCharset utf-8
Для корректной установки CMS Bitrix 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 Отображение возникающих ошибок PHP на страницеЧтобы контролировать работу сайта, нужно настроить отображение ошибок PHP. Один из способов это сделать ― добавить директиву в .htaccess: php_flag display_errors on
php_value error_reporting -1 Настройка страниц ошибокЧтобы настроить отображение страниц ошибок, используйте директиву ErrorDocument. Формула для составления команды: ErrorDocument 404 /errors/not_found.php
ErrorDocument 401 /info.html ErrorDocument 403 "you shall not pass" ErrorDocument 500 http://example.com/500.php |