Что такое .htaccess

.htaccess (с точкой в начале имени) – это файл, который дает возможность управлять сервером в пределах вашего хостинг-аккаунта. Если создать файл .htaccess в корневом каталоге аккаунта, то под его управление попадёт весь аккаунт. Также можно создавать его в любых папках корневого каталога(кроме cgi-bin) и управлять содержимым этих папок, каждой в отдельности.

Изменения, вносимые в файлы .htaccess, вступают в силу немедленно и не требуют перезагрузки сервера.

Синтаксис .htaccess

Пути к файлам и директориям должны указываться от корня сервера, например, /pub/home/server1/html/

В именах доменов обязательно должны быть указаны протоколы (http).

Как создать .htaccess файл?

Создать файл можно в обычном Блокноте (Notepad). Запишите все нужные строки и потом нажмите на «Сохранить Как» («Save As)», нужно выбрать тип файла «Все Файлы» *.* («All Files» *.*) и в поле «Имя файла» написать .htaccess (с точкой!). Если это сделать не возможно, сохраните файл просто как .htaccess.txt, а после загрузки по FTP, измените имя на .htaccess с помощью FTP-клиента.

Для чего используется .htaccess?

  1. Авторизация и аутентификация – файлы .htaccess используются для создания ограничений для конкретной директории.
  2. Собственные страницы ошибок– изменение страниц, которые отдаются при ошибках на стороне сервера.
  3. Изменение URL-адресов – .htaccess используют для изменения излишне сложных URL-адресов на легко запоминающиеся.
  4. Контроль кеша – .htaccess позволяют серверу контролировать кеширование сайта web-браузерами для уменьшения использования канала и загрузки сервера.

Основные правила .htaccess

Редирект http -> https
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

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

Редирект http с www -> https без www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Редирект между двумя разными доменами
RewriteEngine On 
RewriteCond %{HTTP_HOST} domain1.com 
RewriteRule (.*) http://domain2.com/$1 [R=301,L]

где domain1.com — домен, с которого осуществляется редирект, а domain2.com — домен, на который осуществляется редирект

Редирект с каждой страницы одного домена на главную другого
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://site.ru/ [L,R=301]
где domain2.com — адрес домена, на который вы хотите осуществить редирект.
Редирект с каждой страницы одного домена на такой же адрес другого
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://domain2.com/$1 [L,R=301]

где domain2.com — адрес домена, на который вы хотите осуществить редирект.

Редирект на 403 при заходе на сайт
Order deny,allow
Deny from all
Блокировать один или несколько IP
Order deny,allow
allow from all
deny from IP1
deny from IP2

где вместо IP1 и IP2 нужно указать значения IP-адресов, для которых вы хотите закрыть доступ к сайту.

Блокировать ботов
RewriteEngine on 
RewriteBase / 
RewriteCond %{HTTP_USER_AGENT} ^.*(Bot01|Bot02).*$ [NC] 
RewriteRule . -  [F,L]

где вместо Bot01, Bot02 необходимо указать реального юзер-агента. Через символ «|», можно написать сколько угодно юзер-агентов, например:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^.*(AhrefsBot|AspiegelBotBaiduspider|bingbot|binance).*$ [NC]
RewriteRule . - [F,L]
Включение gzip сжатия при помощи .htaccess

Стандартный набор правил, при необходимости можно изменять под свои потребности

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json text/xml application/xml text/x-component text/javascript application/javascript application/x-javascript
</IfModule>
Включение cache при помощи .htaccess

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

<ifModule mod_expires.c>
ExpiresActive On
#по умолчанию кеш в 5 секунд
ExpiresDefault "access plus 5 seconds"
#далее для отдельных файлов задается отдельное время кеширования
#кэшировать флэш и изображения на 30 дней
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
#кэшировать css, javascript и текстовые файлы на 7 дней
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 604800 seconds"
ExpiresByType application/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
#кэшировать html и htm файлы на один день
ExpiresByType text/html "access plus 43200 seconds"
#кэшировать xml файлы на десять минут
ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule>
Оцените статью
Поделитесь статьей
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
In this article