Запустить

15+ возможностей .htaccess, о которых вы могли не знать

обновлено 27 марта
27 сентября 2019
64 292
352
21 мин
15+ возможностей .htaccess, о которых вы могли не знать

Если вы думаете, что .htaccess нужен только для настройки редиректов (переадресаций) — вы ошибаетесь. Возможности файла намного шире, с его помощью можно сделать много полезного для качественной и корректной работы сайта. Рассказываем о том, как оптимизатор или вебмастер может использовать файл .htaccess.

Оглавление

Краткая справка по .htaccess

Файл .htaccess (сокращенное от «hypertext access», что в переводе означает «доступ к настройкам веб-сервера») используют программисты и оптимизаторы для настройки веб-сервера. В нем задают команды, которые определяют, как должен работать ресурс.

Он не требуется, если есть доступ к основному конфигурационному файлу сервера (обычно .httpd.conf, хотя название может отличаться в зависимости от системы и настроек). Изменения в нем применяются быстрее и не создают дополнительной нагрузки на сервер.

На практике у оптимизатора часто нет такого доступа, поэтому .htaccess остается основным рабочим инструментом. С его помощью можно задать настройки, которые помогут в оптимизации проекта:

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

Где находится .htaccess и как его редактировать

Здесь важный момент: от места размещения зависит, на какие разделы ресурса распространяются команды:

  • Если файл лежит в корневой директории, правила применяются ко всему сайту.
  • Если в папке каталога — только к этому каталогу и вложенным в него подкаталогам. Приоритет имеют правила, заданные на более низком уровне.

Обычно его размещают в корневой директории проекта.

Если вы создаете этот файл самостоятельно, не забудьте точку в начале имени — ведь название фактически представляет собой файловое расширение.

Создать или отредактировать .htaccess можно в любом текстовом редакторе.

Редактирование готового .htaccess в CMS (системе управления сайтом)

В некоторых CMS его можно найти и редактировать прямо в административной панели. Например, в Битриксе для этого нужно перейти в раздел «Контент» и кликнуть по пункту «Файлы и папки»:

15+ возможностей .htaccess, о которых вы могли не знать

Если проект работает на WordPress, воспользуйтесь функционалом плагинов Yoast SEO и All in One SEO Pack.

Если .htaccess еще не создан

Создайте его в текстовом редакторе (пропишите необходимые директивы и сохраните файл с «никаким» именем и расширением .htaccess). Затем разместите его в корневой директории сайта (или в папке каталога, если прописываете локальные директивы).

Самые популярные каналы для рекламы вашего бизнеса — на платформе PromoPult:

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

Для прямых рекламных аккаунтов действует бонусная программа: возвращаем до 19% от расходов на внешнюю рекламу на счет PromoPult.

Реклама. ООО «Клик.ру», ИНН: 7743771327, ERID: 2VtzqwNpdsL

Базовые правила синтаксиса

Каждая команда начинается с новой строки. В файле можно оставлять комментарии, чтобы другие оптимизаторы или разработчики понимали, для чего прописано то или иное правило.

Чтобы оставить комментарий, необходимо поставить знак #. Все содержимое строки, которое находится после этого знака, сервер не учитывает и не воспринимает как команду.

После сохранения файла изменения вступают в силу сразу. Сервер перезагружать не нужно.

Правила задаются с помощью регулярных выражений — комбинаций специальных символов и переменных. Полную документацию по ним приложим ниже, а пока расшифруем самые популярные.

Базовые спецсимволы:

^ — обозначает начало строки;

$ — конец строки;

. — обозначает любой символ (кроме символа конца строки);

* — любое количество любых символов;

? — один определенный символ;

[0-9] — заменяет любую цифру, [a-z] — любую букву из латинского алфавита;

| — символ «или», выбирается или одна группа, или другая;

() — применяется для выделения групп символов.

Часто используемые переменные

%{HTTP_USER_AGENT} — содержит информацию о браузере пользователя и операционной системе (поле User-agent, которое передает браузер при обращении к ресурсу);

%{REMOTE_ADDR} — IP адрес пользователя;

%{REQUEST_URI} — запрашиваемый адрес сайта (URL);

%{QUERY_STRING} — параметры запроса после знака ?.

Полный синтаксис и все возможности файла — в официальной документации. Также есть неплохой русскоязычный ресурс о практическом использовании файла.

В тонкости углубляться не будем — разберем, как .htaccess может помочь в оптимизации ресурса.

Стандартные способы применения .htaccess: редиректы

Настройка редиректов — самый распространенный способ использования .htaccess (об этом мы уже упоминали в начале статьи). Больше о редиректах можно почитать здесь.

При настройке 301 редиректов учитывайте следующее:

  1. Убедитесь, что перенаправление действительно нужно. Например, некоторые CMS по умолчанию перенаправляют пользователей на страницы со слешем. В таком случае дополнительная настройка редиректа не нужна.
  2. Следите за тем, чтобы не было двух и больше последовательных перенаправлений. Несколько последовательных редиректов нагружают сервер и страницы загружаются медленнее.
  3. Сначала частные редиректы, затем — глобальные. Перенаправляйте сначала с одной страницы на другую (например, частный редирект с удаленной страницы на новую). А затем — общий редирект на страницу со слешем в конце URL.

1. Постраничный редирект

Есть несколько ситуаций, когда требуются постраничные редиректы:

  • Изменение структуры ресурса, при котором у страницы меняется уровень вложенности (например, структура упростилась и страница теперь находится не на третьем уровне вложенности от корневой директории, а на втором).
  • Удаление страницы. Страница уже не нужна, но нужно сохранить трафик, который на нее приходит. Хороший пример для интернет-магазина — когда товар снимается из каталога, логично поставить редирект на товарную категорию.
  • Меняется URL страницы (такого лучше избегать).

Не очень удачное решение — просто удалить страницу. Поисковые роботы при попытке зайти по проиндексированному URL получат ошибку 404, что не очень хорошо для поискового продвижения (SEO). Редирект — оптимальный вариант, так как позволяет сохранить и входящий трафик, и позиции в поисковой выдаче.

Как настроить 301 редирект

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

Redirect 301 /url1/ https://shop.com/url2

  • /url1/ здесь — адрес страницы, с которой мы хотим перенаправлять пользователей. Адрес нужно указывать от корневой директории, без указания протокола и домена. Например, /silovaya-tehnika/generatory-elektrostantsii/benzinovye/.
  • https://shop.com/url2 — адрес страницы, на которую нужно перенаправить посетителей. Здесь уже нужно указывать полный адрес — с протоколом и доменом. Например, https://www.vseinstrumenti.ru/silovaya-tehnika/generatory-elektrostantsii/benzinovye/.

2. Редирект на страницу со слешем или без

Чтобы не вводить в заблуждение поисковых роботов, каждая страница должна быть доступна только по одному адресу. Помните, что для роботов адреса https://site.com/catalog и https://site.com/catalog/ — это две страницы, а не одна. Поэтому нужно настроить:

  • редирект на страницы без слеша в конце адреса (или наоборот, в зависимости от того, какой логики вы придерживаетесь в целом по сайту);
  • главное зеркало — указать, какой адрес ресурса следует считать основным (например, c www или без www).

Для устранения дублей с помощью этих настроек нужно воспользоваться модулем mod_rewrite. Здесь уже используются директивы сложного перенаправления. Первой командой необходимо включить модуль преобразования URL:

RewriteEngine On

Редирект на адрес со слешем или наоборот

Существенной разницы здесь нет: выбор зависит от общей логики адресации. На новых проектах, как правило, настраивают перенаправление на адрес со слешем в конце. Если ресурс работает давно, посмотрите, каких страниц в индексе больше.

Если нужен редирект на слеш, используйте такие команды:

RewriteCond %{REQUEST_URI} /+[^\.]+$

RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

На страницу без слеша редирект осуществляется с помощью такого кода:

RewriteCond %{REQUEST_URI} !\?

RewriteCond %{REQUEST_URI} !\&

RewriteCond %{REQUEST_URI} !\=

RewriteCond %{REQUEST_URI} !\.

RewriteCond %{REQUEST_URI} ![^\/]$

RewriteRule ^(.*)\/$ /$1 [R=301,L]

3. Настройка главного зеркала

Первым делом определитесь, какой адрес должен использоваться как основной для поиска.

Редирект на HTTPS

RewriteEngine On

RewriteCond %{HTTPS} !on

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

При настройке главного зеркала нужно определиться, как указывать адрес: с «www» или без. Есть несколько способов для определения:

  • Добавьте сайт в Яндекс Вебмастер в двух вариантах — с «www» и без. Яндекс выберет главное зеркало по своему усмотрению и отобразит эту информацию в консоли.
  • Посмотрите на поисковую выдачу. Если в индексе больше страниц с «www» — устанавливайте главное зеркало с «www». Если без — используйте обычный адрес.
  • Если проект новый — можете смело выбирать любой вариант.

После того как вы определились с форматом адреса зеркала, укажите нужные директивы. Ниже — два варианта кода:

Перенаправление с адреса с www на адрес без www

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Перенаправление с адреса без www на адрес с www

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\..* [NC]

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

4. 301 редирект на другой домен

Чаще всего такой редирект используют при смене домена (переезде на новый адрес). 301-й редирект перенаправляет поисковых роботов и пользователей на обновленный URL. Иногда его применяют и в сером поисковом продвижении (SEO), но в это углубляться не будем.

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

RewriteEngine On

RewriteRule ^(.*)$ http://www.mysite2.com/$1 [R=301,L]

или

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.mysite1\.ru$ [NC]

RewriteRule ^(.*)$ http://www.mysite2.ru/$1 [R=301,L]

mysite1 и mysite2 в коде — это адрес старого и нового домена, соответственно.

Ускорение работы сайта

С помощью команд в .htaccess можно повысить скорость загрузки страниц.

5. Сжатие компонентов сайта с помощью модулей

В .htaccess можно включить сжатие при помощи двух модулей — mod_zip и mod_deflate. Они практически идентичны по качеству сжатия.

У Gzip более гибкий синтаксис, который поддерживает работу с масками:

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

В mod_deflate необходимо указать типы файлов, которые следует сжать:

<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>

6. Управление кэшированием

С помощью этих команд страницы будут быстрее загружаться для тех пользователей, которые уже открывали их ранее. При первом посещении браузер пользователя загружает все изображения и скрипты, расположенные на странице. Если включить кэширование, при повторном заходе на страницу браузер не будет заново скачивать все ресурсы. Он сможет использовать данные, сохраненные в кэше, что существенно ускорит загрузку страницы.

Так выглядят директивы для усиления кэширования:

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|gif|png|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 week"
</filesmatch>
</ifmodule>

В нашем примере мы ограничили продолжительность жизни кэша 1 неделей (“access plus 1 week”). Вы можете указать любое другое значение и использовать другие единицы измерения, например:

  • месяц (month);
  • год (year);
  • часы (hours).

То же самое можно указать и с помощью такого кода:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType application/javascript "access plus 7 days"
ExpiresByType text/javascript "access plus 7 days"
ExpiresByType text/css "access plus 7 days"
ExpiresByType image/gif "access plus 7 days"
ExpiresByType image/jpeg "access plus 7 days"
ExpiresByType image/png "access plus 7 days"
</IfModule>

А вот перечень типов файлов, которые можно кэшировать:

  • image/x-icon;
  • image/jpeg;
  • image/png;
  • image/gif;
  • application/x-shockwave-flash;
  • text/css;
  • text/javascript;
  • application/javascript;
  • application/x-javascript;
  • text/html;
  • application/xhtml+xml.

Настройка отображения страниц

В начале статьи мы упоминали о том, что с помощью .htaccess можно управлять отображением сайта. Рассмотрим несколько примеров того, что можно сделать.

7. Замена индексного файла

Индексный файл — страница, которая открывается по умолчанию при обращении к определенному каталогу. Вот так этот файл выглядит в каталоге сайта:

15+ возможностей .htaccess, о которых вы могли не знать

Как правило, такой файл называется index или default, и имеет расширение .html/.php/.htm или другие.

Допустим, у вас интернет-магазин мебели с разделом офисной мебели — https://mebel-shop.com/ofisnaya-mebel/. В каталоге по умолчанию открывается index.html, но вы хотите заменить его на new.html с товарами-новинками.

Для этого в каталоге /ofisnaya-mebel/ разместите файл .htaccess и укажите в нем следующую директиву:

DirectoryIndex new.html

«new.html» — название файла, который нужно показать вместо дефолтного.

Также в директиве можно указать несколько файлов. Если первый из них будет недоступен — откроется второй, если недоступен первый и второй — откроется третий, и т. д.

DirectoryIndex new.html new2.php new3.html

8. Настройка отображения расширения .html в адресах страниц

URL-адреса страниц могут отображаться с расширением или без:

https://site.com/main.html или https://site.com/main

Отображение расширения не влияет на ранжирование (по крайней мере, нет данных, которые бы это подтверждали). Каждый оптимизатор делает это по своему усмотрению.

В .htaccess вы можете настроить отображение расширения или убрать его.

Добавить расширение:

RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)

RewriteRule .* %1.html [R=301,L]

RewriteRule ^(.*)/$ /$1.html [R=301,L]

Убрать расширение:

RewriteBase /

RewriteRule (.*)\.html$ $1 [R=301,L]

Такие же директивы можно применить для управления показом расширения .php.

9. Настройка кодировки

Если кодировка сайта указана неправильно (или не указана вовсе), текст на страницах может отображаться в виде набора непонятных символов. Поэтому всегда указывайте кодировку.

Обычно ее указывают в метатеге каждой страницы. Если на вашем ресурсе такого нет, пропишите директиву в .htaccess.

Чтобы задать файлу кодировку Windows-1251, используйте такой код:

AddDefaultCharset WINDOWS-1251

Для того чтобы все файлы при загрузке на сервер преобразовались в кодировку UTF-8, нужна такая директива:

CharsetSourceEnc UTF-8

10. Страницы для 4хх ошибок

Стандартные страницы ошибок (например, 404) можно сделать оригинальными и полезными для пользователя. Например, разместить там информативное сообщение о том, почему появилась ошибка и дать ссылки на другие разделы сайта. Это поможет удержать пользователей.

15+ возможностей .htaccess, о которых вы могли не знать

В .htaccess можно настроить показ созданных страниц для таких ошибок. Последовательность действий:

  1. Подготовьте и сверстайте страницы для ошибок.
  2. Создайте папку error в корневой директории и разместите в ней нужные файлы.
  3. Затем пропишите в .htaccess следующие директивы:

ErrorDocument 401 /error/401.php

ErrorDocument 403 /error/403.php

ErrorDocument 404 /error/404.php

ErrorDocument 500 /error/500.php

Как усилить безопасность через .htaccess

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

  • закрыть доступ к определенным файлам (или даже разделам);
  • поставить защиту от кражи контента;
  • предотвратить DoS-атаки (искусственное создание нагрузки на сервер);
  • защитить от вредоносных скриптов.

11. Защита изображений от скачивания конкурентами

Конкуренты могут использовать ваш контент для наполнения своих ресурсов — особенно это актуально для интернет-магазинов. Например, они могут подгружать изображения напрямую с вашего хостинга по прямым ссылкам. Чтобы этого избежать, настройте соответствующие директивы в .htaccess.

Вот, что нужно прописать:

Options +FollowSymlinks

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^https://(www.)?mysite.com/ [nc]

RewriteRule .*.(gif|jpg|png)$ https://mysite.com/img/goaway.gif[nc]

При попытке загрузить любые картинки с расширением gif, jpg или png с вашего сайта конкуренты получат изображение goaway.gif. На нем размещено сообщение о том, что красть чужие картинки — это плохо. Здесь вы можете покреативить и пристыдить конкурентов (изображение появится на ресурсе, на котором планировали использовать ваши картинки), либо просто поставить любое изображение-заглушку. Вместо «mysite.com» укажите адрес вашего сайта.

12. Ограничение доступа к сайту

В .htaccess также можно прописать директивы, которые запрещают доступ различным посетителям. Например,

  • можно закрыть доступ определенным IP;
  • закрыть доступ подсетям;
  • заблокировать доступ вредоносным ботам.

Директивы для блокирования User Agents (ботов)

SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]
<limit get="" post="" head="">
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</limit>

Вы можете использовать этот список агентов, дополнить его или убрать ненужные позиции. Также вы можете создавать такие списки с нуля.

В том числе, в .htaccess вы можете запретить доступ к сайту поисковым роботам. Например, запрет для бота Google будет выглядеть так:

RewriteEngine on
RewriteCond %{USER_AGENT} Googlebot
RewriteRule .* — [F]

Запрет по IP

Здесь есть два варианта:

  • открыть доступ только конкретным IP-адресам, а всем остальным запретить;
  • разрешить доступ для всех, а указанным IP — запретить.

Запрет доступа для всех, кроме указанных IP

ErrorDocument 403 https://mysite.com

Order deny,allow

Deny from all

Allow from IP1

Allow from IP2 и т. д.

«https://mysite.com» здесь — адрес вашего сайта. IP1 и IP2 — места для указания IP-адресов, которым вы хотите открыть доступ.

Запрет доступа для определенных IP

allow from all

deny from IP1

deny from IP2 и т. д.

Запрет доступа для подсети

allow from all

deny from 192.168.0.0/24

После «deny from» впишите маску подсети.

С помощью этих директив вы можете блокировать IP, с которых оставляют спамные комментарии. Или IP, с которых поступает слишком много запросов, нагружающих сервер. Вычислить эти адреса вы можете в логах сервера или в сервисах статистики.

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

<files myfile.html>
order allow,deny
deny from all
</files>

В первой строке вместо «myfile.html» пропишите название файла, к которому хотите запретить доступ. Название обязательно указывайте с расширением. При попытке открыть файл пользователь увидит ошибку 403 — «доступ запрещен».

Ограничение доступа пригодится и в таких случаях:

  • Доступ к самому .htaccess.
  • Если проект работает на WordPress — закройте паролем файл wp-config.php (это важно с точки зрения безопасности, так как в этом файле хранится информация о базе данных).

Блокировка трафика с нежелательных ресурсов

Например, вы не хотите, чтобы на ваш сайт попадали посетители с сомнительных ресурсов. Пропишите такую команду:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} bad-site.com [NC,OR]
RewriteCond %{HTTP_REFERER} bad-site.com [NC,OR]
RewriteRule .* — [F]
</ifModule>

Вместо «bad-site.com» укажите адреса (URL), с которых не хотите принимать входящий трафик.

13. Настройка доступа к файлам или папкам по паролю

С помощью .htaccess можно ограничить доступ к отдельным файлам и директориям, защитив их паролем. Для этого выполните два шага.

1. Создайте файл с паролями

Создайте файл .htpasswd, укажите в нем логины и пароли в таком формате:

user:password

Где «user» — это логин пользователя, а «password» — соответствующий пароль.

Разместите файл с паролями в корневой директории.

Для обеспечения безопасности пароли лучше зашифровать. Это можно сделать с помощью специальных генераторов, например этого.

2. Пропишите директивы в .htaccess

Укажите, какие именно файлы или папки нужно защитить паролем.

Установка пароля для файла

<files secure.php="">
AuthType Basic
AuthName ""
AuthUserFile /pub/home/.htpasswd
Require valid-user
</files>

Установка пароля для папки

resides
AuthType basic
AuthName "This directory is protected"
AuthUserFile /pub/home/.htpasswd
AuthGroupFile /dev/null
Require valid-user

«/pub/home/.htpasswd» — расположение нашего файла с логинами и паролями. Укажите путь к своему файлу от корня. После установки пароля проверьте, корректно ли выполняются все директивы.

14. Защита от внедрения скриптов

Хакеры могут использовать ваш ресурс в своих целях с помощью скриптовых инъекций — внедрения фрагмента кода, который будет выполняться на страницах.

В .htaccess мы можем настроить защиту от подобных атак. Для этого необходимо прописать следующие директивы:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

При попытке выполнить любой скрипт на вашем ресурсе злоумышленник получит ответ сервера 403 — «доступ запрещен».

15. Защита от DOS-атак (перегрузки сервера запросами)

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

Например, ограничить размер загружаемых файлов в байтах:

LimitRequestBody 10240000

В этой директиве указано ограничение на файлы больше 10 Мбайт.

Если хотите защититься более основательно — изучите директивы LimitRequestFields, LimitRequestFieldSize и LimitRequestLine в официальной документации.

Дополнительные возможности .htaccess

16. Настройки php

Эти настройки нужны программистам, если по каким-то причинам нет доступа к файлу php.ini.

Рассмотрим для примера выражения php_value — позволяет устанавливать максимальный объем загружаемых данных и максимальное время обработки скриптов. Это важные настройки, так как напрямую влияют на производительность.

<ifModule mod_php.c>
php_value upload_max_filesize 125M
php_value post_max_size 20M
php_value max_execution_time 60
</ifModule>

В строке «upload_max_filesize» указываете максимальный размер загружаемых файлов в мегабайтах, «post_max_size» означает максимальный объем постинга, «max_execution_time» указывает время в секундах на обработку скриптов.

17. Борьба со спамерами в комментариях на WordPress

Чтобы избавиться от спамных комментариев, закройте доступ к файлу wp-comments-post.php. Сделать это можно с помощью таких команд:

RewriteEngine On

RewriteCond %{REQUEST_METHOD} POST

RewriteCond %{REQUEST_URI} .wp-comments-post\.php*

RewriteCond %{HTTP_REFERER} !.*mysite.com.* [OR]

RewriteCond %{HTTP_USER_AGENT} ^$

RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

Вместо «mysite.com» впишите адрес проекта.

18. Назначение имейл для администратора сервера

С помощью этого кода можно назначить адрес электронной почты администратора:

ServerSignature EMail

SetEnv SERVER_ADMIN admin@mysite.com

Все уведомления о важных событиях на сервере будут приходить на этот адрес.

19. Вывод сообщения о недоступности сайта

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

Следующие команды перенаправят пользователя на такую страницу:

RewriteEngine on

RewriteCond %{REQUEST_URI} !/info.html$

RewriteCond %{REMOTE_HOST} !^12\.345\.678\.90

RewriteRule $ https://mysite.ru/info.html [R=302,L]

В строке «RewriteCond %{REMOTE_HOST} !^12\.345\.678\.90» замените IP-адрес на адрес своего сервера. А в строке «RewriteRule $ https://mysite.ru/info.html [R=302,L]» замените адрес https://mysite.ru/info.html на адрес страницы с информацией о технических работах.

Что нужно помнить при работе с .htaccess

  • Перед любыми изменениями делайте бэкап (резервную копию). Если обновление директив приведет к ошибкам, вы сможете быстро откатиться.
  • Правила, заданные в .htaccess в корневой директории, распространяются на все каталоги и подкаталоги. Если размещаете дополнительные .htaccess в отдельных папках, указывайте в них только новые локальные правила — остальные унаследуются от родительского уровня.
  • Если нужно задать несколько директив, добавляйте их по одной: после каждого изменения обновляйте конфигурацию и проверяйте результат. Так проще избежать ошибок и понять, где возникла проблема.
  • Обратите внимание! В командах нельзя использовать кириллицу. Если нужно указать адрес кириллического домена (сайт.рф), используйте метод punycode (формат записи доменов с кириллицей в латинице). Например, адрес «сайт.рф» будет выглядеть как «xn--80aswg.xn--p1ai/$1».
  • Если возникает ошибка 500, сначала проверьте синтаксис директивы — причиной может быть обычная опечатка. Конфигурацию также можно проверить с помощью онлайн-сервисов. Например, этого. Если ошибок нет, но проблема сохраняется, вероятно, такой тип команды запрещен в основном конфигурационном файле сервера — в этом случае потребуется помощь программиста или хостинг-провайдера.
  • Используйте .htaccess только для тех настроек, которые нельзя задать другими способами. Избыточное количество команд может снизить производительность ресурса.
  • Пользуйтесь генератором .htaccess, если не хотите изучать синтаксис самостоятельно.

Полный автопилот с указанием домена и бюджета или тонкая ручная настройка:

Запустить рекламу в PromoPult
64 292
27 сентября 2019

Читайте также 🔥 🔥 🔥 🔥 🔥

Чтобы продолжить чтение, зарегистрируйтесь в PromoPult и применяйте знания на практике

Подключите бесплатное продвижение на 2 недели в PromoPult

Для владельцев бизнеса и маркетологов:

  • Реклама в Яндексе, ВК, на Wildberries и поисковое продвижение в одном окне
  • ИИ маркетолог — умный помощник для запуска рекламы
  • Бесплатный тест SEO на 2 недели
  • Инструменты для рекламы и аналитики WB