Black Friday! Получите до 9 месяцев Хостинга в подарок!

Подробнее

Инструкция для веб-мастеров: секреты настройки .htaccess файла

post thumbnail

Файл .htaccess — это пользовательский файл для дополнительной настройки web-сервера Apache. Правила в .htaccess применяются для каталога, в котором он создан, и для всех его подкаталогов. Это позволяет добавить правила как и для всего сайта, так и для конкретного каталога. Как можно заметить, имя данного файла начинается с точки, что в unix-системах указывает на то, что файл является скрытым.

Основными преимуществами данной настройки являются:

  • возможность пользователя самому настроить нужные правила web-сервера для сайта, не имея доступа суперпользователя;
  • настройки в данном файле применяются мгновенно, без перезагрузки какой-либо службы;
  • поскольку настройки .htaccess работают только для текущего каталога и его подкаталогов, ошибки в его синтаксисе не влияют на другие сайты и на работу web-сервера в целом.

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

Шаг 1 – Редирект с http на https

Для перенаправления всех страниц сайта с http на https достаточно добавить правило в начало файла .htaccess, который расположен в корневой папке сайта.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !robots.txt$
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Шаг 2 – Ограничение доступа к сайту

Данным правилом мы запретим доступ к сайту или к директории сайта, где .htaccess расположен с подобными правилами, для всех, кроме IP-адреса 123.123.123.123. По аналогии можно указывать несколько строк с IP-адресами, которым доступ нужно разрешить.

deny from all
allow from 123.123.123.123

Данным правилом мы наоборот закрываем доступ для конкретного IP-адреса 123.123.123.123:

deny from 123.123.123.123

Ограничение доступа к конкретному файлу, в примере файл cron.php:

<Files "cron.php">
deny fromm 123.123.123.123
</Files>

Если вышеуказанных директив нет, то посредством файла .htaccess доступ к сайту не ограничивается.

Шаг 3 – Редирект 301

Редирект 301 с главной страницы сайта на URL http://your_site.ua можно сделать таким образом. В данном примере и последующих, вместо your_site.ua нужно указать имя вашего сайта или нужный URL.

Redirect 301 / https://your_site.ua

Можно также использовать данное правило для любой директории сайта: для этого вместо / указываем нужную директорию, к примеру, /my_dir.

Redirect 301 /my_dir https://your_site.ua

Следующее правило используется для перенаправления всех страниц домена your_site.ua на соответствующие страницы другого домена your_new_site.ua. Данное правило нужно добавить в .htaccess сайта, со страниц которого должен быть редирект, в примере это your_site.ua:

RewriteCond %{HTTP_HOST} ^www\.your_site\.ua$ [NC]
RewriteRule ^(.*)$ http://your_new_site.ua/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^your_site\.ua$ [NC]
RewriteRule ^(.*)$ http://your_new_site.ua/$1 [L,R=301]

По аналогии с предыдущим правилом можно сделать редирект со всех страниц www.your_site.ua на такие же страницы your_site.ua, то есть это редирект с www на без www:

RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

И наоборот, с без www на такую же страницу с www:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

Это правило поможет избавиться от .html в конце URL страницы:

RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule ^ /%1 [NC,L,R=301]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [NC,L]

Еще можно убрать / в конце URL:

RewriteEngine on
RewriteRule (.+)/$ /$1 [L,R=301]

Или добавить / в конце URL, который не заканчиваются на / :

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Шаг 4 – Кодировка сайта

В .htaccess также можно принудительно установить кодировку для сайта используя директиву AddDefaultCharset и передавая ей один параметр — желаемую кодировку, к примеру:

AddDefaultCharset UTF-8

или

AddDefaultCharset WINDOWS-1251

Или можно отключить установку кодировки web-сервером использую директиву:

CharsetDisable on

Шаг 5 – Переопределение страниц ошибок

Эти правила заменят стандартные страницы ошибок на указанные пользовательские страницы. Ссылка http://your_site.ua/error_page_404.html — и другие нужно заменить на ваши ссылки страниц ошибок:

ErrorDocument 404 https://your_site.ua/error_page_404.html
ErrorDocument 403 https://your_site.ua/error_page_403.html
ErrorDocument 500 https://your_site.ua/error_page_500.html

Шаг 6 – Указание нестандартного индексного файла

При открытии любого веб-сайта сервер ищет в корневой папке индексный файл, который по умолчанию задан как index.php или index.html. В случае, если наш индексный файл отличается от заданных по умолчанию, и называется, к примеру, main.php, мы можем это указать в .htaccess директивой:

DirectoryIndex main.php

Вывод

В данной статье рассмотрены примеры наиболее часто используемых правил .htaccess, которые будут полезны как и опытному разработчику, так и новичку в этой сфере. Но это далеко не все возможности конфигурации в .htaccess. В настоящее время использование файла .htaccess не является большой проблемой, поскольку практически все хостинги в своём программном обеспечении используют Apache и поддерживают настройки при помощи .htaccess. Потому данная тема уже много лет остается актуальной и информацию об этом легко можно найти на многих интернет ресурсах. Если возникает задача что-либо настроить при помощи .htaccess — скорее всего это уже кто-то делал, и можно просто найти готовое решение. Если же реализовать нужную настройку .htaccess вам не удалось, обращайтесь в нашу поддержку и мы найдём решение вместе.

Telegram Hostpro

Наш телеграм

с важными анонсами, розыгрышами и мемами

Присоединиться

Возможно, вас заинтересует

Причины возникновения ошибки 502. Как ее исправить?

Причины возникновения ошибки 502. Как ее исправить?

Ошибки 5хх означают проблемы на стороне сервера. Если говорить конкретно об ошибке 502, то...

Ruslan Holovatiuk | Обновлено: 30.10.2024

Причины возникновения ошибки 403. Как исправить?

Причины возникновения ошибки 403. Как исправить?

Для большинства пользователей интернета не слишком принципиально, почему они не могут попасть на сайт....

Ruslan Holovatiuk | Обновлено: 23.10.2024

Причины возникновения ошибки 508. Как исправить?

Причины возникновения ошибки 508. Как исправить?

Ошибка 508: Resource Limit Is Reached обычно означает, что ваша учетная запись превысила назначенные...

Ruslan Holovatiuk | Обновлено: 15.10.2024

Как вставить картинку в HTML и оптимизировать ее для лучшего ранжирования в Google 

Как вставить картинку в HTML и оптимизировать ее для лучшего ранжирования в Google 

Согласитесь, визуальные эффекты играют важную роль в создании привлекательного и функционального интерфейса. В этой...

Hostpro Company | Обновлено: 26.09.2024