15+ способностей .htaccess, о которых вы могли не знать
Реклама. ООО «Клик.ру», ИНН:7743771327, ERID: 2VtzqvTiaJz
Когда необходимо настроить редирект (переадресацию), закрыть доступ к служебному файлу, убыстрить загрузку страничек либо поменять поведение веб-сайта без вмешательства в главный конфигурационный файл сервера, почаще всего употребляют .htaccess.
Этот файл издавна стал рабочим инвентарем разрабов, админов и профессионалов по продвижению веб-сайтов в поисковых системах, поэтому что дозволяет стремительно заносить принципиальные конфигурации на уровне сервера. Но работать с ним необходимо аккуратненько: даже одна ошибка в директиве может привести к сбоям.
В данной для нас статье разглядим, для что нужен .htaccess, какие задачки он решает и какие команды используют почаще всего.
Что такое .htaccess и для чего он нужен
Файл .htaccess (от hypertext access – «доступ к настройкам веб-сервера») употребляют создатели и спецы по поисковому продвижению (SEO), когда необходимо задать правила работы веб-сайта на уровне сервера. В нем прописывают команды, которые влияют на поведение ресурса.
Если у админа есть доступ к основному конфигурационному файлу сервера (почаще всего это .httpd.conf, хотя заглавие может различаться), то необходимость в .htaccess обычно отпадает. Конфигурации в главной конфигурации используются резвее и не дают лишнюю нагрузку на сервер.
Но на практике у оптимизаторов такового доступа обычно нет. Потому файл .htaccess остается главным инвентарем для опции веб-сайта. Через него можно решить сходу несколько задач, принципиальных для оптимизации проекта:
-
настроить 301 редиректы (переадресации);
-
повысить сохранность веб-сайта полностью либо отдельных его разделов;
-
задать правила отображения содержимого страничек;
-
воздействовать на скорость загрузки страничек.
Где находится .htaccess и как его редактировать
Область деяния установок в .htaccess зависит от того, где конкретно размещен файл:
-
если он находится в корневой директории, правила будут работать для всего веб-сайта;
-
если файл лежит снутри отдельной папки, команды распространятся лишь на этот каталог и все вложенные подкаталоги.
При всем этом наиболее приоритетными числятся правила, которые заданы на наиболее низком уровне структуры.
Почаще всего .htaccess располагают в корне веб-сайта. Если вы создаете его вручную, принципиально не запамятовать точку сначала имени. Это принципный момент, поэтому что .htaccess практически смотрится как файл без обычного наименования.
Для сотворения и редактирования подойдет хоть какой текстовый редактор.
Как поменять готовый .htaccess в CMS (системе управления веб-сайтами)
В неких системах управления веб-сайтами (CMS) файл .htaccess можно открыть прямо через административную панель. К примеру, в Битриксе для этого необходимо зайти в раздел «Контент», а потом избрать пункт «Файлы и папки».

В WordPress для работы с .htaccess нередко употребляют плагины Yoast SEO либо All in One SEO Pack.
Что созодать, если .htaccess еще не сотворен
Если файла еще нет, его можно сделать без помощи других в обыкновенном редакторе текста. Для этого необходимо прописать нужные директивы, сохранить файл как .htaccess и потом загрузить его в корневую директорию веб-сайта. Если правила должны действовать лишь для определенного раздела, файл можно расположить снутри соответственного каталога.
PromoPult – это платформа, где собраны главные инструменты для продвижения бизнеса в вебе. Тут можно работать сходу с несколькими каналами в одном интерфейсе и не переключаться меж различными сервисами. Вы сможете:
-
Продвигать веб-сайт в Yandex’е и Гугл. Начать можно с бесплатного двухнедельного теста, чтоб поглядеть, как инструмент работает на практике.
-
Запускать контекстную рекламу через обычной модуль с ИИ-помощниками либо прямые аккаунты Yandex Директа.
Посреди плюсов платформы – бесплатная маркировка креативов и единый контракт сходу на некоторое количество видов рекламы. А для юзеров прямых маркетинговых аккаунтов действует бонусная программка: на счет PromoPult можно возвратить до 19% от расходов на внешнюю рекламу.
Базисные правила синтаксиса .htaccess
Каждую команду в файле необходимо писать с новейшей строчки. По мере необходимости можно оставлять комменты, чтоб иным спецам было проще осознать предназначение тех либо других правил.
Для объяснений употребляют символ #. Все, что написано в строке опосля этого знака, сервер игнорирует и не принимает как команду.
Опосля сохранения .htaccess конфигурации начинают работать сходу же. Перезагрузка сервера для этого не нужна.
Правила в файле задаются при помощи постоянных выражений – особых композиций знаков и переменных. Полную документацию по ним мы приведем ниже, а пока разберем самые всераспространенные обозначения.
Главные спецсимволы
-
^ – начало строчки;
-
$ – конец строчки;
-
. – хоть какой знак, не считая знака конца строчки;
-
* – хоть какое количество всех знаков;
-
? – один определенный знак;
-
[0-9] – неважно какая цифра, [a-z] – неважно какая латинская буковка;
-
| – логическое «либо», когда выбирается одна из групп;
-
() – группировка знаков.
Переменные, которые употребляют почаще всего
-
%{HTTP_USER_AGENT} – содержит данные о браузере юзера и его операционной системе;
-
%{REMOTE_ADDR} – IP-адрес юзера;
-
%{REQUEST_URI} – адресок запрашиваемой странички;
-
%{QUERY_STRING} – характеристики запроса опосля знака вопросца.
Полный синтаксис и все способности .htaccess можно поглядеть в официальной документации. Есть и отличные русские материалы, где разобраны практические примеры использования этого файла.
На данный момент не будем углубляться в технические детали и далее разберем, как .htaccess помогает в оптимизации веб-сайта.
Как употребляют .htaccess для редиректов (переадресаций)
Один из самых нередких сценариев работы с .htaccess – настройка переадресаций. Конкретно через этот файл обычно управляют перенаправлениями, если необходимо сохранить корректную структуру веб-сайта, убрать дубли страничек и не утратить трафик.
Когда настраиваете 301 редиректы (переадресации), принципиально учесть несколько моментов. Во-1-х, не каждое перенаправление вправду необходимо. К примеру, в ряде CMS (систем управления веб-сайтами) переход на адресок странички со слешем в конце уже реализован автоматом, и вручную дублировать это правило не требуется. Во-2-х, стоит избегать цепочек из нескольких переадресаций: если страничка перенаправляется поначалу на один адресок, а позже еще на иной, это замедляет загрузку и делает лишнюю нагрузку на сервер. Очередной практический момент: поначалу лучше прописывать личные правила для отдельных страничек, а уже опосля этого – общие правила для всего веб-сайта.
Постраничный редирект (переадресация): в которых вариантах он нужен
Постраничные редиректы употребляют тогда, когда необходимо перенаправить гостя и поискового бота с 1-го определенного URL на иной. Такое решение полезно в нескольких типовых ситуациях.
К примеру, у веб-сайта поменялась структура, и страничка переместилась на иной уровень вложенности. Допустим, ранее URL находился поглубже в каталоге, а опосля переработки структуры адресок стал короче.
Очередной нередкий вариант – удаление странички. Если просто убрать ее с веб-сайта, юзер и поисковый бот получат ошибку 404. Для поискового продвижения (SEO) это ненужный сценарий, в особенности если страничка уже была в индексе и собирала трафик. В интернет-магазине заместо удаленной карточки продукта разумнее навести юзеров в подобающую категорию либо на близкую по смыслу страничку.
3-ий вариант – смена URL. Совершенно без необходимости адреса страничек лучше не поменять, но если это уже вышло, без 301 редиректа не обойтись.
Конкретно потому редирект в таковых вариантах считается наиболее правильным решением, чем обычное удаление странички. Он помогает сохранить входящий трафик и понижает риск утраты позиций в поисковой выдаче.
Как настроить 301 редирект для одной странички
Чтоб создать обычное перенаправление с одной странички на другую, в .htaccess употребляют такую директиву:
Redirect 301 /url1/ https://shop.com/url2
Тут /url1/ – это начальный адресок странички, откуда необходимо перенаправлять юзеров. Его прописывают от корневой директории, без домена и протокола. К примеру: /silovaya-tehnika/generatory-elektrostantsii/benzinovye/.
Адресок https://shop.com/url2 – это уже конечная страничка, куда должен вести редирект. Тут, напротив, указывают полный URL: с протоколом и доменом. К примеру: https://www.vseinstrumenti.ru/silovaya-tehnika/generatory-elektrostantsii/benzinovye/.
Переадресация на URL со слешем и без него
Для поисковых машин адреса вида https://site.com/catalog и https://site.com/catalog/ – это не один и этот же URL, а две различные странички. Если оба варианта открываются без перенаправления, на веб-сайте возникают дубли. Потому необходимо избрать единый формат адресов и привести все странички к одной логике: или со слешем в конце, или без него.
Обычно на новейших веб-сайтах почаще оставляют вариант со слешем. Если проект существует издавна, полезно поначалу поглядеть, каких URL в индексе больше, чтоб не разламывать уже сложившуюся структуру без предпосылки.
Для работы с таковыми редиректами нужен модуль mod_rewrite. Поначалу его включают:
RewriteEngine On
Если необходимо перенаправлять юзеров на адреса со слешем в конце, используют таковой код:
RewriteCond %{REQUEST_URI} /+[^.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
Если, напротив, требуется убрать слеш в конце URL, употребляют иной вариант:
RewriteCond %{REQUEST_URI} !?
RewriteCond %{REQUEST_URI} !&
RewriteCond %{REQUEST_URI} !=
RewriteCond %{REQUEST_URI} !.
RewriteCond %{REQUEST_URI} ![^/]$
RewriteRule ^(.*)/$ /$1 [R=301,L]
Основное зеркало веб-сайта: www, без www и HTTPS
Еще одна принципиальная задачка – указать основное зеркало веб-сайта. Другими словами найти, какой вариант адреса поисковая машина обязана считать главным. Обычно тут решают сходу два вопросца: перевод на HTTPS и выбор формата домена – с www либо без него.
Если веб-сайт должен раскрываться лишь по защищенному протоколу, настраивают редирект на HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Опосля этого необходимо избрать, какой вариант домена будет главным. Найти это можно несколькими методами. К примеру, добавить веб-сайт в Yandex Веб-мастер в 2-ух версиях – с www и без – и поглядеть, какое зеркало Yandex назначит основным. Или проверить поисковую выдачу и оценить, каких страничек в индексе больше. Если проект новейший и истории у него еще нет, можно сходу избрать тот вариант, который удобнее для вашей структуры.
Когда решение принято, в .htaccess прописывают необходимое правило.
Если необходимо перенаправлять юзеров с адреса с www на адресок без www, подойдет таковой код:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Если, напротив, главным должен быть адресок с www, употребляют этот вариант:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www..* [NC]
RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301]
301 редирект при переезде на иной домен
Когда веб-сайт меняет домен, принципиально не попросту запустить новейший адресок, а корректно перенаправить юзеров и поисковых ботов со старенького домена на новейший. Для этого как раз и употребляют 301 редирект.
Таковой редирект докладывает поисковым системам, что страничка переехала на неизменной базе. Это в особенности принципиально при переезде проекта, чтоб не утратить скопленный вес страничек, трафик и позиции.
В .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 помогает убыстрить работу веб-сайта
Файл .htaccess употребляют не только лишь для редиректов. Через него можно воздействовать и на скорость загрузки страничек. Почаще всего для этого включают сжатие файлов и управляют кешированием браузера.
Сжатие файлов веб-сайта
Чтоб уменьшить размер передаваемых данных и убыстрить загрузку страничек, в .htaccess можно включить сжатие компонент веб-сайта. Для этого обычно употребляют модули mod_gzip и 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 >
Настройка кеширования в .htaccess
Очередной метод убыстрить загрузку страничек – верно настроить кеширование. В особенности это приметно для тех юзеров, которые уже заходили на веб-сайт ранее.
Когда человек открывает страничку в первый раз, браузер загружает изображения, стили, скрипты и остальные элементы. Если кеширование включено, при повторном визите часть этих ресурсов не надо закачивать поновой: браузер возьмет их из кеша. Из-за этого страничка раскроется резвее.
Один из вариантов опции кеширования смотрится так:
FileETag MTime Size
< ifmodule mod_expires.c >
< filesmatch ".(jpg|gif|png|css|js)$" >
ExpiresActive on
ExpiresDefault «access plus 1 week»
< /filesmatch >
< /ifmodule >
В этом примере срок жизни кеша задан как одна неделька – access plus 1 week. По мере необходимости можно указать и иной период: к примеру, месяц, год либо несколько часов.
Этот же принцип можно воплотить и наиболее детально, если задать сроки раздельно для различных типов файлов:
< 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 для управления веб-сайтом
Через .htaccess можно не только лишь настраивать редиректы, да и поменять то, как веб-сайт раскрывается для юзера, какие странички показываются по дефлоту, как обрабатываются ошибки и какие ограничения действуют для гостей. Ниже разберем самые полезные сценарии.
Как поменять индексный файл в каталоге
Индексный файл – это страничка, которую сервер открывает автоматом, если юзер входит в определенный раздел веб-сайта. Почаще всего это index.html, index.php, default.html либо схожий файл.

Представим, что у интернет-магазина техники есть раздел https://teh-shop.com/smartfony/, и на данный момент в нем по дефлоту загружается index.html. Но вы желаете, чтоб заместо него раскрывалась страничка new.html, где собраны новинки. Это можно создать через .htaccess, если расположить файл в папке /smartfony/ и прописать такую директиву:
DirectoryIndex new.html
Если необходимо указать несколько вариантов на вариант, когда главный файл недоступен, можно перечислить их попорядку:
DirectoryIndex new.html new2.php new3.html
Тогда сервер будет инспектировать их по порядку.
Как настроить отображение расширения .html в URL
Адресок странички может смотреться по-разному: с расширением .html либо без него. К примеру:
-
https://site.com/main.html
-
https://site.com/main
Исходя из убеждений поискового продвижения прямого воздействия на ранжирование тут обычно не выделяют. Выбор зависит быстрее от принятой на веб-сайте логики адресации. Основное – употреблять один вариант поочередно, чтоб не создавать дубли.
Если необходимо добавить расширение .html в адреса, можно употреблять такие правила:
RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|?)
RewriteRule .* %1.html [R=301,L]
RewriteRule ^(.*)/$ /$1.html [R=301,L]
Если задачка оборотная и необходимо убрать .html из URL, подойдет таковой вариант:
RewriteBase /
RewriteRule (.*).html$ $1 [R=301,L]
По тому же принципу можно управлять и показом расширения .php.
Как задать правильную шифровку веб-сайта
Если шифровка указана ошибочно либо не задана совершенно, заместо текста на страничках могут показаться нечитаемые знаки. Чтоб этого не происходило, шифровку необходимо найти очевидно.
Обычно ее прописывают в метатеге на самой страничке. Но если это не изготовлено, часть опций можно задать через .htaccess.
Для шифровки Windows-1251 употребляют такую директиву:
AddDefaultCharset WINDOWS-1251
Если необходимо, чтоб файлы при загрузке на сервер обрабатывались в шифровке UTF-8, используют иной вариант:
CharsetSourceEnc UTF-8
Как настроить собственные странички ошибок 4xx и 5xx
Обычные странички ошибок обычно никчемны для юзера. Если человек попал на 404, лучше не попросту показать сухое сообщение, а разъяснить, что вышло, и отдать ссылки на принципиальные разделы веб-сайта. Это в особенности полезно для интернет-магазинов, сервисов и контентных проектов, где принципиально не терять гостя.

Чтоб настроить такие странички через .htaccess, необходимо поначалу приготовить их и расположить, к примеру, в папке error в корне веб-сайта. Опосля этого прописывают такие команды:
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
Опосля этого при появлении соответственной ошибки сервер будет демонстрировать вашу страничку, а не обычную.
Как усилить сохранность через .htaccess
Файл .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]
Заместо mysite.com необходимо подставить домен собственного веб-сайта. В этом примере при попытке употреблять ваши рисунки с другого ресурса будет подгружаться файл goaway.gif. Это быть может просто заглушка либо изображение с хоть каким предупреждением.
Как ограничить доступ к веб-сайту, файлам либо ботам
В .htaccess можно задавать правила, которые ограничивают доступ:
-
для отдельных IP-адресов;
-
для целых субсетей;
-
для вредных роботов;
-
для определенных файлов.
К примеру, если необходимо заблокировать часть User-Agent, можно употреблять таковой набор директив:
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 можно даже закрыть доступ отдельным поисковым ботам. К примеру, запрет для Googlebot смотрится так:
RewriteEngine on
RewriteCond %{USER_AGENT} Googlebot
RewriteRule .* — [F]
Ограничение доступа по IP
Если необходимо разрешить вход лишь нескольким адресам, а других закрыть, употребляют таковой вариант:
ErrorDocument 403 https://mysite.com
Order deny,allow
Deny from all
Allow from IP1
Allow from IP2
Если, напротив, веб-сайт должен быть доступен всем, не считая нескольких IP, правила будут таковыми:
allow from all
deny from IP1
deny from IP2
Для блокировки сабсети употребляют запись с маской:
allow from all
deny from 192.168.0.0/24
Такие ограничения полезны, к примеру, если на веб-сайт идет спамный трафик либо очень много запросов с определенных адресов. Обычно такие IP находят в логах сервера либо в системах статистики.
Как закрыть доступ к определенному файлу
Если необходимо запретить открытие отдельного файла, можно прописать правило такового вида:
< files myfile.html >
order allow,deny
deny from all
< /files >
Заместо myfile.html необходимо указать собственный файл с расширением. Опосля этого при попытке открыть его юзер увидит ошибку 403.
Таковая защита в особенности полезна для чувствительных файлов. К примеру:
-
для самого .htaccess;
-
для wp-config.php в WordPress, где хранятся данные для подключения к базе.
Как заблокировать переходы с ненужных веб-сайтов
Время от времени необходимо запретить трафик с определенных источников, если это непонятные либо вредные веб-сайты. В таком случае можно употреблять такое правило:
< 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 указывают адреса веб-сайтов, с которых не охото принимать переходы.
Как настроить доступ по паролю к файлам и папкам
Через .htaccess можно поставить пароль на отдельный файл либо целую директорию. Это комфортно, если необходимо ограничить доступ к служебным разделам, тестовым версиям страничек либо внутренним материалам.
Поначалу делают файл .htpasswd, где в формате user:password прописывают логины и пароли. Для сохранности пароли лучше хранить в зашифрованном виде.
Опосля этого в .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 необходимо поменять на путь к собственному файлу.
Как защититься от внедрения вредных скриптов
Одна из угроз для веб-сайта – скриптовые инъекции, когда злодей пробует передать через запрос вредный код. Часть таковых попыток можно отсечь через .htaccess.
Пример директив:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (|%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 и не делает запрос.
Как ограничить размер запросов и понизить риск DoS-атаки (искусственное создание перегрузки на сервер)
Настоящая защита от DoS-атак строится не только лишь через .htaccess, но некие базисные ограничения тут задать можно. Один из обычных вариантов – ограничить наибольший размер загружаемых данных.
К примеру:
LimitRequestBody 10240000
В этом случае сервер не воспримет запросы с телом больше 10 Мбайт.
Если необходимо настроить защиту поглубже, добавочно изучают директивы LimitRequestFields, LimitRequestFieldSize и LimitRequestLine. Официальная справка тут.
Доп способности .htaccess
Не считая оптимизации (SEO), сохранности и редиректов, через .htaccess можно задавать и остальные характеристики, которые понадобятся в работе веб-сайта.
Опции PHP через .htaccess
Если доступа к php.ini нет, часть характеристик PHP время от времени задают через .htaccess. К примеру, можно поменять наибольший размер загружаемых файлов, предел POST-запроса и время выполнения скрипта:
< 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 – общий размер POST-данных;
-
max_execution_time – наибольшее время выполнения скрипта в секундах.
Как понизить поток спамных объяснений в WordPress
Если на веб-сайте на 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 подставляют адресок собственного веб-сайта.
Как назначить имейл админа сервера
Через .htaccess можно указать адресок админа, на который будут приходить системные извещения:
ServerSignature EMail
SetEnv SERVER_ADMIN admin@mysite.com
Тут admin@mysite.com необходимо поменять на рабочий имейл.
Как показать страничку о технических работах
Если веб-сайт временно недоступен из-за обновления либо обслуживания, заместо ошибки лучше вывести отдельную страничку с разъяснением ситуации. Это понижает раздражение юзеров и помогает сохранить доверие.
Для такового перенаправления можно употреблять последующий код:
RewriteEngine on
RewriteCond %{REQUEST_URI} !/info.html$
RewriteCond %{REMOTE_HOST} !^12.345.678.90
RewriteRule $ https://mysite.ru/info.html [R=302,L]
Тут необходимо поменять IP-адрес сервера и URL странички с извещением о технических работах.
Что принципиально держать в голове при работе с .htaccess
У .htaccess огромные способности, но ошибки в нем стремительно сказываются на работе веб-сайта. Потому перед хоть какими переменами лучше сохранять запасную копию. Если новенькая директива вызовет сбой, вы можете стремительно возвратить рабочую версию.
Есть и остальные правила, которые стоит держать в голове:
-
команды из .htaccess, который лежит в корне веб-сайта, действуют и на вложенные сборники;
-
если в отдельных папках создаются доп .htaccess, туда лучше добавлять лишь локальные правила, а не дублировать все поновой;
-
если директив много, вносите их поэтапно: добавили одно правило, проверили итог, позже перебегайте к последующему;
-
в командах недозволено употреблять кириллицу, потому кириллические домены необходимо переводить в punycode (формат записи доменов с кириллицей в латинице);
-
если опосля конфигураций возникла ошибка 500, поначалу проверьте синтаксис: часто неувязка возникает из-за обыкновенной опечатки;
-
очень огромное количество правил в .htaccess может усугубить производительность веб-сайта.
Если не охото разбираться в синтаксисе вручную, можно употреблять генератор .htaccess, а потом проверить готовые команды перед внедрением.
Оригинал статьи на SEOnews