Htaccess скачать


Файл .htaccess содержит в себе настройки для хостинг-серверов на базе linux. Многие не задумываются о важности правильной конфигурации файла .htaccess для сайта. А ведь от этого зависит безопасность вашего сайта и многие другие аспекты его работы.

Мы рассмотрим оптимальный файл .htaccess для сайта на WordPress.

1. Зачем нужен файл .htaccess?

В данном файле задается ряд важных настроек безопасности, кеширования, редиректов, сжатия файлов. Какие именно параметры можно настроить с помощью .htaccess для сайте на WordPress:

1) Безопасность:

  • Запрет листинга директорий (отображение всех содержащихся в директории файлов и папок).
  • Запрет различных SQL-инъекций (способ взлома сайта, основанный на внедрении в запрос произвольного SQL-кода).
  • Блокирование различных hacking tools (программ, скриптов для взлома сайта).
  • Защита ключевых конфигурационных файлов от доступа (файла wp-config.php, самого файла .htaccess и других).
  • Запрет прямого доступа к php, xml и ini файлам

2) Оптимизация загрузки и производительности сайта:

  • Оптимальный mod_headers (установка Vary: Accept-Encoding).
  • Настройка gzip-сжатия.
  • Настройка кеширования и периодов актуальности кеша (ExpiresByType).

3) Редиректы — перенаправления:

  • Включение mod_rewrite и перенаправлений.
  • 301 редирект — перенаправление с www.ваш-сайт.ru на ваш-сайт.ru либо наоборот.
  • 302 — документ перемещен временно.
  •  404 — файл не найден.
  • Другие редиректы, в том числе сложные.

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

Относитесь серьезно к безопасности вашего сайта!

2. Как создать файл .htaccess для вашего сайта?

Самый простой способ создания файла .htaccess — с помощью программы Total Commander.

  • Создаем с помощью блокнота или любого другого текстового редактора (к примеру, notepad++) файл htaccess.txt. Пока что это обычный текстовый файл.
  • Теперь открываем программу Total Commander, находим файл htaccess.txt, нажимаем правую кнопку мыши и выбираем «переименовать».

оптимальный htaccess для wordpress

  • Переименовываем htaccess.txt  в .htaccess (обратите внимание: имя файла пустое, а .htaccess — это расширение файла).
  • Сохраняем изменения.
  • Теперь нам нужно расположить файл .htaccess в корневой директории сайта (там же, где расположен файл wp-config.php).

Для этого используйте любой FTP-клиент для загрузки файла на хостинг (можно использовать тот же Total Commander или Filezilla).

оптимальный .htaccess

Пока что файл .htaccess пустой. Давайте наполним его содержимым.

3. Оптимальная конфигурация файла .htaccess для WordPress.

Внимание! Если вам не хочется вникать в детали — скачайте сразу оптимальный файл .htaccess для вашего сайта. После скачивания .htaccess закачайте в корневую папку сайта.

  • Общие правила: все новые директивы настроек пишутся с новой строки. Чтобы закомментировать правило, поставьте в начале строки знак #
  • Важно: закомментированная строка не работает и служит как примечание для вебмастера.
  • Определенные модули параметров нажно заключать в секции, например <IfModule mod_headers.c> и </IfModule>.

Итак, рассмотрим какие секции файла .htaccess за что отвечают.

1) Закроем листинг файлов и папок:

Options +FollowSymLinks -Indexes

2) Включим mod_rewrite:

RewriteEngine On

3) Теперь добавим блок настроек безопасности:

 4) Укажем редиректы, если это необходимо:

 

5) Настроим gzip-сжатие:

 

6) Настроим кеширование и время актуальности кеша:

7) Настроим параметры mod_headers (Vary: Accept-Encoding)

 

8) Защищаем от несанкционированного доступа файл wp-config.php:

 

9) Защищаем от доступа сам файл .htaccess:

 

10) Добавим правильную кодировку по умолчанию:

AddDefaultCharset utf-8

11) Перенаправление на домен без www:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Внимание: замените адрес site.ru на адрес вашего сайта!

12) Перенаправление с домена без www на адрес с www:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^site.ru
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=permanent,L]

Внимание: замените адрес site.ru на адрес вашего сайта! Выберите только один вариант перенаправления: либо на www, либо на без www.

maxtop.org

Синтаксис файла htaccess


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

Все директивы из файла htaccess выполняются точно так же, как если бы они были размещены в глобальном конфигурационном файле, только внутри директивы <Directory адрес_папки_htaccess>. Это не позволяет менять глобальные настройки, но вы можете очень тонко настроить поведение программы в папках, к которым у вас есть права доступа.

Общий синтаксис директив очень прост, это пары команд и их опций, разделенных пробелом, например:

Команда параметр1 параметр2 флаги

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

Настройка доступа htaccess

Довольно часто htaccess используется для управления доступом к папке. Для управления доступом используются три команды:

  • order — порядок;
  • deny — запретить;
  • allow — разрешить.

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

Затем с помощью директивы allow или deny мы разрешаем или запрещаем доступ к папке с определенных адресов. Например, чтобы запретить все необходимо добавить в htaccess:

Order deny,allow
Deny from all

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

Order deny,allow
Deny from all
Allow 192.168.0.

Если указано deny,allow, то проверка будет выполняться в таком порядке. Сначала все директивы deny, затем все директивы allow, и если ни одно из условий не подошло, то запрос пропускается.При allow,deny такой запрос будет по умолчанию отклонен. Например, предыдущий пример можно написать так:

Order allow,deny
Allow 192.168.0.

Модификация URL в htaccess

Наиболее часто htaccess используется для модификации URL во время выполнения или редиректов. За эту функциональность отвечает модуль mod_rewrite и обычно он активирован в большинстве конфигураций Apache.

Модификация URL в htacces выполняется с помощью трех директив, это RewriteBase, которая указывает префикс адреса, RewriteCond проверяет соответствие, и RewriteRule — изменяет URL в соответствии с регулярным выражением если все правила соответствия подходят.

Сначала нужно включить Mod_Rewrite, на случай если модуль еще не активен:

RewriteEngine on


Укажем, что в качестве префикса для URL нужно использовать корень:

RewriteBase /

И будем автоматически заменять URL адреса с index.html на index.php, обратите внимание, что исходный URL — это путь к запрашиваемому файлу относительно расположения файла htaccess:

RewriteRule index.html /index.php

Для более эффективной замены можно использовать регулярные выражения они состоят из специальных символов и переменных и обычных символов и цифр. Рассмотрим основные специальные символы:

  • ^ — начало строки;
  • $ — конец строки;
  • . — любой символ;
  • * — любое количество любых символов;
  • ? — один определенный символ;
  • [0-9] — последовательность символов, например, от 0 до 9;
  • | — символ или, выбирается или одна группа, или другая;
  • () — иcпользуется для выбора групп символов.

В регулярных выражениях htaccess также можно использовать переменные с данными, полученными из заголовков запроса, например:

  • %{HTTP_USER_AGENT} — поле User-Agent, которое передает браузер пользователя;
  • %{REMOTE_ADDR} — IP адрес пользователя;
  • %{REQUEST_URI} — запрашиваемый URI;
  • %{QUERY_STRING} — параметры запроса после знака ?.

Это наиболее часто используемые переменные, но их есть намного больше, остальные вы можете найти в официальной документации. Регулярные выражения открывают более широкие возможности, например, вы можете заменять во всех страницах html на php:

RewriteEngine On;
RewriteBase /;
RewriteRule ^(.*).html$ $1.php

Директива RewriteCond дает еще больше гибкости, вы можете выбрать к каким адресам стоит применять модификацию, например, будем переопределять данные только для версии с www:

RewriteBase /;
RewriteCond % {REMOTE_HOST} ^www.site.ru$
RewriteRule ^(.*).html$ $1.php

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

Настройка редиректов в htaccess

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

Самый простой редирект можно выполнить без mod_rewrite, с помощью такой строки:

Redirect 301 /index.html http://www.site.ru/index.php


Но обычно нужны перенаправления с более широким действием. Все выглядит очень похоже, только теперь мы используем флаг [NC] чтобы не учитывать регистр, [L] для прекращения обработки и [R] — для редиректа. Например, перенаправление htaccess с версии без www на домен с www:

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

Значение R=301 означает код редиректа, который будет возвращен клиенту, можно использовать 301, 302 и т д. Редирект htaccess с домена www на домен без префикса будет выглядеть так:

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

Таким же образом можно сделать переадресацию:

RewriteRule ^старый_адрес /новый_адрес/$1 [R=301,L]

Редирект с http версии на https:

RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

Настройка страниц ошибок в htaccess

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

Настройка htaccess для этого пункта будет очень полезной. Вы можете использовать директиву ErrorDocument. С помощью нее можно задать html страницы для ошибок 4хх и 5хх. Например, для 404:


ErrorDocument 404 http://site.ru/error/404.shtml
ErrorDocument 403 http://site.ru/error/403.shtml
ErrorDocument 401 http://site.ru/error/401.shtml
ErrorDocument 500 http://site.ru/error/500.shtml

Кэширование в htaccess

Браузер позволяет хранить в своем кэше изображения, файлы скриптов, стилей и другие медиафайлы определенное время. Время жизни кэша задается веб-сервером с помощью специальных заголовков. Их можно настроить с помощью модуля expires.

Сначала активируем модуль и устанавливаем период кэширования по умолчанию:

ExpiresActive On
ExpiresDefault "access plus 1 month"

Теперь мы можем настроить кэширование для каждого mime типа файлов:

ExpiresByType text/html "access plus 1 month 15 days 2 hours"
ExpiresByType image/gif "access plus 5 hours 3 minutes"
ExpiresByType image/x-icon "access plus 2592000 seconds"

В первой строке мы указываем, что страницы html нужно считать годными на один месяц 15 дней и два часа с момента загрузки. Доступны такие типы файлов:

  • 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;

Чтобы быть уверенным что эта конструкция не вызовет ошибок заключите ее в if:

<ifModule mod_expires.c>
</ifModule>

Сжатие файлов в htaccess

Для сжатия в Apache можно использовать модуль deflate. Здесь достаточно просто перечислить mime типы файлов, которые нужно сжать. Например:

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript

Вы также можете заключить конструкцию if, чтобы проверить поддерживается ли этот модуль:

<ifModule mod_deflate.c>
</ifModule>

Выводы

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

На завершение предлагаю видео с обзором конфигурационного файла Apache:

losst.ru

Правильный htaccess для wordpress

Мне часто приходится создавать сайты на платформе wordpress. Поэтому я часто скачиваю свежую сборку с официального сайта. К моему сожалению, по-молчанию там отсутствуют файлы .htaccess и robots.txt.

Сейчас мы напишем правильный .htaccess для WordPress.

htaccess для wordpress

Базовые для сайта на движке wordpress следующие:

# BEGIN WordPress RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress

Эти строки включают механизм преобразований, необходимый для создания страниц с использованием ЧПУ.

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

Копируем, и вставляем  до # END WordPress

#Сжимаем компоненты сайта путем включения Gzip AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html

Это основное улучшение, рассмотрим и другие:

Защита изображения на сайте.

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

Чтобы этого избежать, пропишете в файле htaccess следующее:

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?ваш-сайт.com/.*$ [NC] RewriteRule.(png|gif|jpg|jpeg)$ http://www.ваш-сайт.com/stopimg.gif [R,L]

Защита от Спама.

Зачастую многие спам-боты обращаются напрямую к файлу, который обрабатывает комментарии пришедшие с сайта, этот файл называется wp-comments-post.php. Можно выловить спам-бота от живого пользователя через обращение к файлу wp-comments-post.php на наличие REFERER. При добавлении комментариев, у пользователя он есть, а вот у спам-бота его нет. Но этот метод не является 100% защитой от Спама,  воспользуйтесь дополнительно плагином.
Не забудьте поменять «ваш домен.ru» на ваш (5-тая строка ).

# защита комментария от Спам-бота RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post.php* RewriteCond %{HTTP_REFERER} !.*ваш домен.ru.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

Запретить доступ к папке wp-content и wp-includes.

Все пользователи  WordPress знают, что в папке «wp-content» хранятся все плагины и темы, картинки и многое др. Рекомендую защитить папку «wp-content» от нехороших людей (редисок).

Создать новый файл htaccess в папке «wp-content» на хостинге с таким кодом (эти же действия сделайте для папки «wp-includes»):

Order deny,allow Deny from all <Files ~ ".(xml|css|jpe?g|png|gif|js)$"> Allow from all </Files> 

Запрет доступа к файлу wp-config.php

В WordPress файл «wp-config.php»  содержит всю важную информацию, например, название и пароль к базе данных. Запретим доступ через файл htaccess.

# защита wp-config.php <files wp-config.php> order allow,deny deny from all </files> 

Запрещаем просмотр нежелательным 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] Order Allow,Deny Allow from all Deny from env=bad_bot

Ограничение доступа к админ-панеле WordPress.

Вы можете разрешить доступ к админ-панеле только вашему IP адресу. Но этот метод подходит, если у вас постоянный IP адрес.
xx.xxx.xxx.xxx — это ваш IP адрес.

AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "Example Access Control" AuthType Basic <LIMIT GET> order allow, deny deny from all allow from xx.xxx.xxx.xxx </LIMIT> 

Защита htaccess.

Мы защитили файлы, папки от посторонних лиц, но не нужно забывать, что сам файл htaccess тоже нуждается в защите. Согласен, немного смешно звучит.
Итак, защитим все файлы, которые начинаются с «hta» от просмотра нежелательными и любопытными лицами.

<Files ~ "^.*.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </Files>

Ускорение сайта через файл htaccess для WordPress.

(Код, который ускоряет блог.)

Включаем кэширование браузера клиента.

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

Header append Cache-Control "public" FileETag MTime Size ExpiresActive On ExpiresDefault "access plus 0 minutes" ExpiresByType image/ico "access plus 1 years" ExpiresByType text/css "access plus 1 years" ExpiresByType text/javascript "access plus 1 years" ExpiresByType image/gif "access plus 1 years" ExpiresByType image/jpg "access plus 1 years" ExpiresByType image/jpeg "access plus 1 years" ExpiresByType image/bmp "access plus 1 years" ExpiresByType image/png "access plus 1 years" #Сжимаем компоненты сайта путем включения Gzip AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html

Вот и все!!! Не игнорируйте темой «htaccess для WordPress«, так как htaccess важен для защиты блога.

x-inside.ru

Что такое .htaccess?

Файл .htaccess (англ. hypertext access) используется для простой и удобной настройки веб-сервера на котором хранится сайт пользователя. Соответственно меняя настройку веб-сервера, мы сможем поменять работу сайта. Как правило, файл .htaccess находится в корневом каталоге, а его действие распространяется на весь сайт и на все подкаталоги. Если же в другом каталоге содержится свой .htaccess, то он будет действовать только на свой каталог и подкаталоги.

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

Где находиться файл .htaccess?

Обычно он располагается в коневом каталоге сайта. Иногда, в различных CMS может находится файл htaccess.txt, который никак не воспринимается сервером и ни на что не влияет. Чтобы он начал работать нужно его переименовать в .htaccess. Если это не получится сделать на вашем компьютере, то зайдите на свой сервер через FTP-клиент, и переименуйте файл прямо сервере.

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

Как проверить работает ли .htaccess?

Все просто, напишите в первой строчке этого файла любое слово (например YAROBOT), сохраните файл и замените им находящийся на сервере. Если сайт продолжит работать, то .htaccess в данный момент не работает. Если же появится ошибка 500 Internal Server Error, то это значит, что веб-сервер не смог понять команду (YAROBOT) и выдал ошибку. Этот факт подтвердит, что работа .htaccess на сервере поддерживается и включена в данный момент. Чтобы вернуть сайту работоспособность удалите строчку с YAROBOT.

Далее мы поговорим о всем полезном, что можно сделать с помощью данного файла.

  1. Редирект между страницами или сайтами + изменение URL
  2. Обработка ошибок
  3. Настройка безопасности сайта
  4. Кодировка страниц сайта
  5. Оптимизация работы сайта
  6. Настройка PHP

Правильный 301 редирект через файл .htaccess

Важно! Если вы хотите, чтобы ваш редирект работал, нужно перед строками, которые рекомендуются ниже по тексту, обязательно прописать

RewriteEngine On

301 Редирект с одной страницы на другую (или сайт)

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

Redirect 301 /старая-страница.html http://сайт.рф/новая-страница.html

или

RedirectPermanent /старая-страница.html http://сайт.рф/новая-страница.html

301 Редирект с www-сайта на сайт без www

Например перенаправление с http://www.site.com на http://site.com. Это очень полезная вещь, часто используется в СЕО

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

Обратный редирект с домена без www на домен с www

Перенаправление с http://site.com на http://www.site.com (не советуем использовать)

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

Редирект всех посетителей со старого сайта на новый

Redirect 301 / http://newsite.com/

Как добавить .html в конце URL?

Чтобы при вводе site.com/page или site.com/page/ происходило перенаправление на site.com/page.html пишем в .htaccess следующее:

RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|?)
RewriteRule .* %1.html [R=301,L]
RewriteRule ^(.*)/$ /$1.html [R=301,L]

Как убрать .html в конце URL?

Обратный редирект с site.com/page.html на site.com/page

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

Как убрать слэш в конце URL?

Например было site.com/page/, стало site.com/page

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]

301 Редирект с одного раздела на другой?

Перенаправление всех страниц одного раздела site.com/razdel-1/razdel-2/page на на страницы другого раздела site.com/razdel-1/page

RewriteRule ^blog/raznoe/(.*)$ http://site.ru/blog/$1 [R=permanent,L]

301 Редирект при переезде со старого домена на новый

Следующее правило корректно перенаправит посетителей с каждой конкретной страницы старого сайта на такую же страницу на новом сайте. Например со страницы oldsite.com/page на newsite.com/page

RewriteCond %{HTTP_HOST} ^www.oldsite.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^test.oldsite.com$ [NC]
RewriteRule ^(.*)$ http://newsite.com/$1 [R=301,L]

Правильное изменение страниц ошибок через .htaccess

Когда пользователь хочет увидеть сайт (отправляет запрос на сервер хостера), то сервер возвращает ему ответ с кодом. Коды 1-399 свидетельствуют о нормальной работе сервера, а коды 400-599 сообщают об ошибке сервера (коды всех ошибок смотрите в спец. статье). Например, если сервер с вашим сайтом перегружен, или у него происходит перезагрузка, то пользователь увидит непонятный ему текст (например, 500 Internal Server Error), подумает, что сайт больше не будет работать и больше никогда на него не вернется. Чтобы вместо стандартной страницы ошибки (непонятно для пользователя) показать ему вашу отдельную страницу, на которой будет например, сообщение о том, что сайт временно не работает, но позже восстановит свою работу и на него обязательно стоит вернуться (сайт КиноПоиск при перегрузки серверов выдает сообщение «Матрица перезагружается…» и соответствующую картинку). Наиболее распространенным решением является составление собственной страницы вместо стандартной 404-ошибки. Эта ошибка показывается пользователю, если введен адрес несуществующей страницы. Думающие вебмастеры, создают свою страницу вместо непонятной стандартной, на которой пишут, что человек перешел по несуществующей ссылке и предлагают поискать нужную информацию на сайте, а не уйти с него. Пример нашей 404-страницы можно увидеть здесь. Чтобы показывать пользователям свою страницу ошибки вместо стандартной, нужно создать отдельную страницу (например http://yoursite.com/404.html) и добавить соответствующий код в файл .htaccess Вот примеры кода, который нужно добавить:

ErrorDocument 400 http://yoursite.com/400.html
ErrorDocument 404 http://yoursite.com/404.html
ErrorDocument 500 http://yoursite.com/500.html

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

ErrorDocument 403 «Sorry can’t allow you access today, see you later alligator :)»

Настройки безопасности сайта через файл .htaccess

Файл .htaccess дает большие возможности для улучшения безопасности сайта. Наиболее популярные мы сейчас перечислим:

Защита сайта от скриптовых инъекций

#Включает отслеживание сим-ссылок
Options +FollowSymLinks
#Запускает url_rewriting
RewriteEngine On
#Блокирует все ссылки, содержащие <script>
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
#Блокирует все скрипты, которые пытаются изменить переменные PHP Globals:
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
#Блокирует все скрипты, которые пытаются изменить переменную _REQUEST:
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
#Перенаправляет все подобные попытки на страницу с ошибкой 403 — запрещено
RewriteRule ^(.*)$ index.php [F,L]

Как защитить сайт от кражи картинок

Часто вебмастеры-умельцы узнают путь к картинке на вашем сайте и вставляют его в код своей странички. В итоге основная страничка загружается с его сервера, а картинка — с вашего. Это позволяет ему экономить свой трафик, и использовать ваш.

Options +FollowSymlinks
#Запрещает кражу картинок
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?yoursite.com/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://yoursite.com/images/stop_stealing.gif[nc]

yoursite.com — адрес вашего сайта
http://yoursite.com/images/stop_stealing.gif — путь к картинке, которую вы сами должны создать. На ней обычно пишут «не крадите картинки с чужих сайтов» или что-то подобное.

Как заблокировать доступ к сайту для пользователя по IP?

Применяется против спамеров и прочих неадекватов, изредка для предотвращения хакерских атак.

#Вносим сюда нежелательные IP адреса
allow from all
deny from 164.186.15.116
deny from 124.153.34.144

Как заблокировать доступ к сайту для всех IP кроме проверенных?

Чтобы заблокировать доступ для всех, кроме конкретных IP-адресов, добавляем такой код:

#Запрещает доступ для всех, кроме указанных IP-адресов
ErrorDocument 403 http://www.yoursite.com
Order deny,allow
Deny from all
Allow from 164.186.15.116
Allow from 124.153.34.144

Как запретить просмотр содержимого конкретной папки

#Запрещает просмотр содержимого папки
Options All -Indexes

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

#Защищает файл myfile.txt
<files myfile.txt>
order allow,deny
deny from all
</files>

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

Например чтобы запретить доступ ко всем файлам .txt пишем так:

<Files «.(txt)$»>
Order Deny,Allow
Deny from all
</Files>

Блокируем ненужных User Agent-ов

Часто у пользователя в браузере установлено очень много расширений, которые передают серверу (на котором расположен ваш сайт) информацию о себе и другую лишнюю информацию. Такую же информацию посылают на сервер клиентские приложения установленные на компьютере пользователя, а также различные роботы и пауки. Информацию о большинстве актуальных на сегодня «Юзер Агентах» можно найти здесь.

#Блокирует нижеперечисленных 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

Бывает такое, что один пользователь заходит к вам на сайт и видит его нормальным, а другой видит абракадбру вместо букв. Это происходит из-за кодировки сайта. Чтобы браузер пользователя правильно ее распознал, сайт делается в одной из популярных кодировок:

UTF-8 — универсальная двухбайтовая кодировка
Windows-1251 — Кириллица (Windows)
KOI8-r — Кириллица (КОИ8-Р)
cp866 — Кириллица (DOS)
Windows-1250 — Центральная Европа (Windows)
Windows-1252 — Западная Европа (Windows)

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

<meta http-equiv=»content-type» content=»text/html; charset=Windows-1251″>

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

AddDefaultCharset WINDOWS-1251

Если работают оба варианта (и мета-тег, и файл .htaccess), то очень важно, чтобы кодировка в них совпадала.

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

CharsetSourceEnc WINDOWS-1251

Чтобы выключить перекодировку сервера нужно вписать:

CharsetDisable on

Оптимизация работы сайта через .htaccess

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

. Включение данной функции позволяет серверу сжать информацию, перед тем, как он отправит ее пользователю. В итоге скорость работы сайта возрастет, но это немного увеличит нагрузку на сервер (на котором хранится ваш сайт), т.к. ему придется выполнять операцию сжатия налету. Чтобы включить Gzip-сжатие в файл .htaccess нужно добавить следующие строки (попробуйте поочередно добавить 3 варианта кода, проверяя скорость здесь, и оставьте тот вариант, который дает наибольшее ускорение):

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
<ifmodule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file .js$
mod_gzip_item_include file .css$ </ifmodule>
</IfModule>

или

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch «.(jpg|jpeg|gif|png|ico|css|js)$»>
ExpiresActive on
ExpiresDefault «access plus 1 month»
</filesmatch>
</ifmodule>

или

<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>

Как улучшить кэширование сайта на сервере?

Улучшенное кэширование позволяет не загружать второй раз данные (картинки, основные элементы дизайна и т.д.), которые уже были загружены пользователем в момент первого просмотра сайта. Таким образом для конкретно взятого пользователя, вторая и последующие просмотренные страницы загрузятся гораздо быстрее, а нагрузка на ваш сервер существенно снизится. Улучшить кэширование сайта можно с помощью следующего кода (пробуйте по очереди два варианта, и оставляйте наиболее быстрый, скорость проверяем здесь):

<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>

или

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

В выражении «access plus …» установите срок хранения файлов на компьютере пользователя. По истечении этого срока, при запросе к сайту файлы будут единоразово загружены с сервера. Оптимальным будет от 7 дней до месяца, хотя иногда устанавливается и год.

Изменение главной (индексной) страницы сайта

Как правило при заходе на сайт сначала загружается страница index.html или index.php. Чтобы изменить это правило (в начале станет загружаться mypage.php) добавляем в .htaccess такой код:

DirectoryIndex about.html

Настройка PHP-параметров через файл .htaccess

Обычно за настройки PHP отвечает файл php.ini, но часть этих настроек можно задать через .htaccess. Для этого используются два выражения: php_value — для логических значений (например включитьвыключить), и php_flag для числовых значений. Вот правила написания этих выражений:

php_flag директива1 ЗНАЧЕНИЕ1
php_value директива2 ЗНАЧЕНИЕ2

 

где ЗНАЧЕНИЕ1 может быть on, off, 1 или 0 (1 и on — означает включить, а 0 и off — выключить);

ЗНАЧЕНИЕ2 — любое числовое или буквенное значение, которое подходит под конкретную директиву;

директива1 (используется только с php_flag) может иметь значения:

magic_quotes_gpc — вклвыкл функцию magic_quotes_gpc

php_flag magic_quotes_gpc on

display_startup_errors — вклвыкл показ ошибок, которые происходят при работе PHP

php_flag display_startup_errors 1

display_errors — вклвыкл показ ошибки в браузер

php_flag display_errors 1

output_buffering — вклвыкл буферизацию вывода данных

>php_flag output_buffering on

register_globals — вклвыкл глобальные переменные

php_flag register_globals on

engine — вклвыкл исполнение PHP в папке в которой находится .htaccess и во всех вложенных

php_flag engine off

директива2 (используется только с php_value) может иметь такие значения:

upload_max_filesize — устанавливает максимальный размер загружаемого файла

php_value upload_max_filesize 10M

user_agent — задает значение строки user_agent, которую передает сервер

php_value user_agent “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)”

post_max_size — задает максимальный размер пересылаемой почты

php_value post_max_size 10M

mysql.default_user — задает имя пользователя базы данных

php_value mysql.default_user databaseuser

mysql.default_password — задает пароль для пользователя БД

php_value mysql.default_password jk323jh4g

mysql.default_host — задает имя хоста БД (обычно это localhost)

php_value mysql.default_host localhost

sendmail_from — задает имейл для отправки почты с помощью PHP

php_value sendmail_from

auto_prepend_file — задает файл, который будет добавлен в начало каждого PHP-скрипта

php_value auto_prepend_file /www/publiс_html/myfile.php

auto_append_file — задает файл, который будет добавлен в конец каждого PHP-скрипта

php_value auto_append_file /www/publiс_html/myfile.php

ru.hostings.info

Что вам понадобится

Перед тем, как вы начнете это руководство, вам понадобится следующее:

  • Доступ к панели управления вашим хостингом

Что такое файл .htaccess?

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

В WordPress .htaccess файл не является какой-то особенностью. Любой сайт, который расположен на сервере Apache может использовать файл .htaccess. Сам .htaccess представляет собой файл настроек для сервера. При запуске вашего сайта, сервер ищет данный файл и если он находится в каталоге вашего сайта, выполняет его.

Целью же файла .htaccess является изменение определенных настроек сервера Apache. Поэтому он весьма полезен для включения и отключения некоторых функций сервера. К примеру, он используется для создания перенаправления с адреса без www на www и наоборот. Другой сферой применения является изменение прав доступа для определенных файлов, блокировки ботов или добавления MIME-типов. Он также может быть полезен для укрепления защиты WordPress. Эти функции весьма полезны при работе с WordPress, так как вы сможете изменить настройки под ваши нужды.

Как создать стандартный файл WordPress .htaccess

Когда вы скачиваете и устанавливаете WordPress на сервер Apache, он уже должен идти с файлом .htaccess. Но так как этот файл скрыт, вы должны включить показ скрытых файлов в вашей системе. У нас есть подробное руководство о том, как найти файл .htaccess. Однако в некоторых случаях данный файл может отсутствовать, или быть случайно удален. В такой ситуации мы рекомендуем создать файл .htaccess вручную.

Шаги ниже покажут как создать файл в Файловом Менеджере Hostinger. Однако последовательность действий не должна особо отличаться от подобных на cPanel. Вы также можете создать файл на вашем компьютере и затем загрузить его с помощью FTP-клиента.

Для создания файла .htaccess с помощью Файлового Менеджера Hostinger, просто перейдите в корневой каталог вашего WordPress сайта. Обычно это каталог public_html. Далее, создайте текстовый файл и назовите его .htaccess.

как создать в wordpress htaccess

Откройте файл в любом текстовом редакторе. Файл .htaccess содержит несколько строк кода, который являются стандартными настройками сервера. В WordPress .htaccess должен выглядеть примерно так:

# BEGIN WordPress RewriteRule ^index.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress

Просто скопируйте данный код и вставьте его в созданный файл .htaccess. Сохраните изменения и выйдите.

htaccess сохранить изменения

Поздравляем! Вы создали ваш собственный файл .htaccess. Теперь посетите ваш сайт и проверьте все ли работает правильно, так как неправильная настройка файла может привести к появлению ошибки 500 internal server error.

Заключение

Файл .htaccess является обязательным для правильной работы WordPress. Он может предоставить несколько полезных функций для сервера, в особенности тех, что касаются безопасности.

В этом руководстве, вы:

  • Узнали о файле настроек .htaccess и его назначении
  • Научились создавать свой собственный файл .htaccess
  • Добавили необходимый код для правильной работы файла

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

www.hostinger.ru

Не отображается файл .htacess

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

Как изменить файл .htaccess?

В первую очередь, перед тем как начать редактировать этот файл — сделайте его резервную копию. Если что-то сделано не так, вы легко сможете восстановить работу сайта. Редактировать файл можно любым текстовом редакторов. Например, Notepad++, Sublime или редактор в панели хостинга.

Что нужно знать при редактировании файла хтаццесс?

Как было сказано выше — действие файла распространяется на текущую директорию и все внутренние поддиректории. Кроме того:

  • Если правило начинается на символ «#», то это называется комментарием и веб сервер не будет его обрабатывать.
  • Имеются специальные переменные. Например, %{REMOTE _ ADDR} для определения IP клиента и др.
  • Пути к файлам, к примеру, до htpasswd указываются от корня сервера
  • Адреса документов необходимо указывать с указанием протокола. К примеру, не www.website.ru, а http://website.ru

После редактирования файла появилась ошибка 500 — Internal Server Error

Это означает, что имеется ошибка в файле .htaccess. Возможные причины:

  • Ошибка синтаксиса (опечатки, неверные настройки)
  • Отсутствует тот или иной модуль в веб сервере
  • Старая версия веб сервера/модулей или инструкций файла .htaccess
  • Некоторые директивы запрещены к редактированию

Как устранить эту ошибку: посмотрите в error_log веб сайта. Там обязательно вы увидите указание на ошибку.

htaccess для HTML сайта

Файл .htaccess будет работать как для PHP сайтов, так и для html сайтов. Главное — наличие веб сервера apache, т.к. именно он обрабатывает этот файл.

Установка индексного файла для сайта

Индексный файл — это тот файл, который будет открываться при заходе на сайт или директорию сайта. Как правило, это файл: index.php, index.htm, index.html. Но вы можете поменять его на любой другой. К примеру: myfile.php такой директивой:
DirectoryIndex myfile.php

Вывод ошибок PHP

Если вы хотите включить отображение ошибок PHP, то в файл .htaccess необходимо добавить следующую директиву:
php_value display_errors 1
Таким образом, php будет показывать все ошибки прямо в браузере.

Ошибка 403 — Forbidden при открытии директории сайта

Ошибка 403 Forbidden означает, что доступ запрещен. Если вы видите эту ошибку при открытии директории сайта и вместо этого сообщения хотели увидеть список файлов и директорий, это означает, что отключена специальная директива. Это сделано в целях безопасности, чтобы потенциальные вредители не могли найти файлы, через который можно взломать сайт или просто открыть файлы, доступ к которым вы не разрешали. Чтобы включить показ всех файлов и директорий, напишите следующее:
Options +Indexes

А чтобы включить запрет на отображение файлов в директории, напишите:
Options -Indexes

Кроме того, можно запретить к показу только определенные типы файлов в директории. К примеру, запретим показывать файлы .php и .html:
IndexIgnore *.php *.html

.htaccess кодировка

Поменять кодировку сайта можно через файл .htaccess. К примеру, по умолчанию, веб сервер работает в кодировке UTF-8, а вам нужна кодировка windows-1251. Изменяется это просто:
AddDefaultCharset windows-1251

Таким образом, вы переопределите кодировку в текущий директории и поддиректории.
Так же можно задать кодировку отдельным типам файлам. К примеру, когда основной документ у вас в одной кодировке, а .htm файлы — в другой. Давайте сменим кодировку браузера для .htm файлов на UTF-8:
AddType «text/html; charset=utf-8» .htm

Изменение максимального размера загружаемых файлов в PHP

Вы можете увеличить или уменьшить максимальный размер загружаемого файла через скрипт PHP. К примеру, увеличим размер до 100МБ с помощью двух директив upload_max_filesize и post_max_size:
php_value upload_max_filesize 20M
php_value post_max_size 20M

Обратите внимание, что максимальный размер не может быть больше того значения, которое установлено на сервере. Максимальный размер файла, установленный сервером можно посмотреть через функцию phpinfo().

Время жизни сессии PHP

Через файл .htaccess возможно изменить время жизни сессии PHP. Время жизни задается в секундах. По умолчанию время хранения сессий — 1440 секунд — это 24 минуты.
Давайте увеличим время хранения на 1 неделю. Надо вписать в файл следующие директивы:
php_value session.gc_maxlifetime 604800
php_value session.cookie_lifetime 604800

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

  • Быстрому исчерпанию места на диске
  • Переполнение количества файлов в директории (inodes)
  • К долгому удалению файлов через специальную системную утилиту — garbage collector
  • Увеличению нагрузки на сервере

Включение обработки других файлов интерпретатором PHP
Через наш файл, вы можете указать отдельный список типов файлов, которые будут обрабатываться через php. К примеру, вы хотите включить обработку файлов интерпретатором PHP, которые имеют расширение .phtml. Тогда впишите:
AddType application/x-httpd-php .phtml

Ограничение на использование оперативной памяти в PHP

Для любого скрипта на сервере выдается ограничение на максимальный используемый объем оперативной памяти. Параметр называется memory_limit и его можно посмотреть через phpinfo() или изменить через .htaccess. К примеру, ограничить 256 МБ:
php_value memory_limit 256M

Обращаем внимание, что размер нельзя задать больше, чем разрешено самим сервером.

Основное зеркало сайта через .htaccess

Если у вашего сайта несколько алиасов (зеркал), то для SEO это не очень хорошо, т.к. появляется множество дублей сайта и он перестает быть уникальным. Можно настроить редирект на основной домен вашего сайта, к примеру, на имя website:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^website.ru
RewriteRule ^(.*) http://website.ru/$1 [R=301,L]

То есть, если человек открыл сайт по алиасу, мы его переадресовываем на основной адрес домена.

Включение переадресации для сайта на HTTPS

С недавних пор, Google и другие поисковые системы отдают предпочтение сайта, у которых настроен SSL. И если вы это сделали, то необходимо настроить переадресацию на эту версию, иначе опять возникнут дубли страниц сайта по разным адресам: http и https. Просто впишите следующее в ваш файл:
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Правильная SEO переадресация с HTTPS

Чтобы исключить дубли сайта и включить переадресацию на https версию сайта, нужно внести следующее. На примере, рассмотрим вариант, когда основной домен — без www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.+) [NC]
RewriteRule ^(.*) https://%1/$1 [R=301,NE,L]

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]

Запрет доступа по IP

Через файл .htaccess вы можете запретить доступ к ресурсам сайта или наоборот, разрешить только определенным IP адресам. Можно ограничить как ко всем файлам и директориям, так и к некоторым.
К примеру, запретим доступ всем к текущей директории, поддиректории и файлам:
Order Deny,Allow
Deny from all

А можно заблокировать пользователя, зная его IP адрес 192.168.1.1:
Order Deny,Allow
Deny from 192.168.1.1

Или наоборот, запретить всем, а разрешить только 223.332.111.11:
Order Deny,Allow
Deny from all
Allow from 223.332.111.11

Указание собственных страниц ошибок

Вы можете указать свои страницы для различных ошибок (404,403, 500). Просто указать соответствующий путь до них относительно адреса сайта:
ErrorDocument 403 /error/403error.html
ErrorDocument 404 /error/404error.html
ErrorDocument 500 /error/500error.html

Где /error/название файла — это HTML версия страницы ошибки. Пользователь увидит ее, если возникнет соответствующая ситуация.

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

rigweb.ru

Для единообразия формирования URL страниц сайтов, и предотвращения появлений дубликатов страниц, вводится стандартная часть файла. .htaccess.

Данный конфиг позволяет решить следующие задачи:

  • Вставить код в начале .htaccess
  • При вставке требуется указать правильное зеркало сайта, раскоментировав нужное, по умолчанию удаляет WWW, и включает HTTPS
  • Удалить старый redirect перенаправление на основное зеркало. 
  • Если основное зеркало сайт HTTPS, то внесите протокол в robots.txt Host: https://site.ru, для http зеркал протокол уточнять не требуется.
  • При установке HTTPS основным зеркалом,  перейти на свой сайт и убедиться в отсутствие  blocked:mixed
  • Проверить работу redirect
    Сервис по генерации списка redirect

    Код конфигурационного файла каталога .htaccess.

    ############################################################################  #### Стандартный .htaccess для проектов студии Клондайк, версия 4.2 ####  ############################################################################  RewriteEngine On   # Директива включает редиректы.  RewriteBase /    # Без директивы (.*) = /$1 будет /var/wwww/site/web/$1 с директивой = /$1  Options +FollowSymLinks   # Разрешает переход по символическим ссылкам.  php_flag display_errors off   # запретить отображение ошибок (требование монитора качества)  php_flag allow_url_fopen off   # запретить использовать удаленые файлы (требование проактивной защиты)    ############################################################################  #### Выбор основного зеркала (с www или без www) ####  ############################################################################   # 1. Удалить www  RewriteCond %{ENV:HTTPS} on   #Если включен https  RewriteRule .* - [E=SSL:s]   #То создаем переменную ssl с текстом s  RewriteCond %{HTTP_HOST} ^www.(.*) [NC]   # Проверяем, содержит ли домен www в начале URL.  RewriteRule ^(.*)$ http%{ENV:SSL}://%1/$1 [R=301,L]   # Перенаправляем удаляем www     # 2. Добавить www  #RewriteCond %{ENV:HTTPS} on   #Если включен https  #RewriteRule .* - [E=SSL:s]   #То создаем переменную ssl с текстом s  #RewriteCond %{HTTP_HOST} !^www.(.*) [NC]   # Если нет www в начале домена  #RewriteRule ^(.*)$ http%{ENV:SSL}://www.%{HTTP_HOST}/$1 [R=301,L]   #Подставляем www и https если он включен.    ############################################################################  #### Перенаправляем протокол https на http ####  ############################################################################  #RewriteCond %{HTTPS} on   # Проверяем наличие https в URL.  #RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]   # Перенаправляем протокол на http.    ############################################################################  #### Перенаправляем протокол http на https ####  ############################################################################  RewriteCond %{HTTPS} !on   # Проверяем наличие https в URL.  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]   # Перенаправляем протокол на http.    ############################################################################  #### Убираем index.php, если он есть в конце URL ####  ############################################################################  RewriteCond %{REQUEST_URI} ^(.*)/index.php$   # URL cодержит index.php в конце.  RewriteRule ^(.*)$ %1/ [R=301,L]   # Удалить index.php из URL.    ############################################################################  #### Убираем повторяющиеся слеши (/) в URL ####  ############################################################################  RewriteCond %{THE_REQUEST} //   # Проверяем, повторяется ли слеш (//) более двух раз.  RewriteRule .* /$0 [R=301,L]   # Исключаем все лишние слеши.    ############################################################################  #### Убираем слеши в конце URL для статических файлов (содержит точку) ####  ############################################################################  RewriteCond %{REQUEST_URI} ..+$   # Если файл содержит точку.  RewriteCond %{REQUEST_FILENAME} !-d   # И это не директория.  RewriteCond %{REQUEST_FILENAME} -f   # Является файлом.  RewriteCond %{REQUEST_URI} ^(.+)/$   # И в конце URL есть слеш.  RewriteRule ^(.+)/$ /$1 [R=301,L]   # Исключить слеш.    ############################################################################  #### Добавляем слеш(/), если его нет, и это не файл. ####  ############################################################################  RewriteCond %{REQUEST_URI} !(.*)/$   # Если слеша в конце нет.  RewriteCond %{REQUEST_FILENAME} !-f   # Не является файлом.  RewriteCond %{REQUEST_URI} !..+$   # В URL нет точки (файл).  RewriteCond %{REQUEST_URI} ^(.+)$   # В URL есть хоть один символы  RewriteRule ^(.*)$ $1/ [L,R=301]   # Добавляем слеш в конце.      ############################################################################  #### Компрессия статического контента для гугл спид тест ####  ############################################################################  <IfModule mod_deflate.c>   AddType image/svg+xml .svg   AddOutputFilterByType DEFLATE image/svg+xml    AddOutputFilterByType DEFLATE application/rss+xml   AddOutputFilterByType DEFLATE application/vnd.ms-fontobject   AddOutputFilterByType DEFLATE application/x-font   AddOutputFilterByType DEFLATE application/x-font-opentype   AddOutputFilterByType DEFLATE application/x-font-otf   AddOutputFilterByType DEFLATE application/x-font-truetype   AddOutputFilterByType DEFLATE application/x-font-ttf   AddOutputFilterByType DEFLATE application/x-javascript   AddOutputFilterByType DEFLATE application/xhtml+xml   AddOutputFilterByType DEFLATE application/xml   AddOutputFilterByType DEFLATE font/opentype   AddOutputFilterByType DEFLATE font/otf   AddOutputFilterByType DEFLATE font/ttf   AddOutputFilterByType DEFLATE image/svg+xml   AddOutputFilterByType DEFLATE image/x-icon   AddOutputFilterByType DEFLATE text/css   AddOutputFilterByType DEFLATE text/html   AddOutputFilterByType DEFLATE text/javascript   AddOutputFilterByType DEFLATE text/plain   AddOutputFilterByType DEFLATE text/xml   AddOutputFilterByType DEFLATE image/svg+xml  </IfModule>  <IfModule mod_expires.c>   ExpiresActive on   ExpiresByType image/jpeg "access plus 3 day"   ExpiresByType image/svg "access plus 3 day"   ExpiresByType image/gif "access plus 3 day"   ExpiresByType image/png "access plus 3 day"   ExpiresByType text/javascript "access plus 3 day"   ExpiresByType text/css "access plus 3 day"   ExpiresByType application/javascript "access plus 3 day"  </IfModule>  ############################################################################  #### Антивирус, только для 1С-Битрикс, ####  ############################################################################  #php_value auto_prepend_file "/home/bitrix/ext_www/SITE.RU/bitrix/modules/security/tools/start.php"   # если у вас FastCGI, директив не сработает, и нужно ее записать в vhost   # укажите путь до файла    # включить тут /bitrix/admin/security_antivirus.php?lang=ru    ############################################################################  #### Конец общей части, далее следует собственные директивы .htaccess ####  ############################################################################  # Рефакторинг сайта 01.01.18        ############################################################################  #### Конец собственных директив .htaccess ####  ############################################################################    

    klondike-studio.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.