- htaccess Редиректы (примеры)
- Редирект на страницу «со слэшем на конце»
- Добавление www в URL
- Удаление www из URL
- Редирект на HTTPS (SSL)
- HTTPS перенаправление для WordPress
- Вариант #1
- Вариант #2
- Редирект сайта на новый домен
- Примеры простых редиректов отдельной страницы
- Внутренний редирект на другую страницу
- Редирект страницы на страницу другого сайта
- 301 редирект каталога в HTML-файл
- Перенаправление файла index.html в другой каталог
- Перенаправление с index.html на default.html
- Перенаправление локального каталога /private в каталог /private другого сайта
- Загрузка файла .gif с другого сайта
- Использование регулярных выражений
- Перенаправление сообщений об ошибках
- Перенаправление старого каталога в новый каталог
- Направим запрос в подкаталог (переадресация с главной)
- Переписывание URL-адреса
- Направим все URL в файл index.php
- 301 редирект с index.html и .php на главную страницу
- Как закрыть index.html и index.php от индексации
- Как настроить 301 редирект на главную страницу
- Как проверить редирект
- Как сделать редирект на HTML
- Что такое редирект
- Для чего используют редирект
- Что такое HTML-редирект
htaccess Редиректы (примеры)
Приведенные ниже примеры могут быть добавлены в ваш файл .htaccess именно так, как показано. Только не забудьте изменить путь к файлу, чтобы файл .htaccess знал, где он находится. Также, если вы видите домен example.com, измените его на свое доменное имя.
- Редирект на страницу «со слэшем на конце»
- Добавление www в URL
- Удаление www из URL
- Редирект на HTTPS (SSL)
- HTTPS перенаправление для WordPress
- Вариант #1
- Вариант #2
- Редирект сайта на новый домен
- Примеры простых редиректов отдельной страницы
- Внутренний редирект на другую страницу
- Редирект страницы на страницу другого сайта
- 301 редирект каталога в HTML-файл
- Перенаправление файла index.html в другой каталог
- Перенаправление с index.html на default.html
- Перенаправление локального каталога /private в каталог /private другого сайта
- Загрузка файла .gif с другого сайта
- Использование регулярных выражений
- Перенаправление сообщений об ошибках
- Перенаправление старого каталога в новый каталог
- Направим запрос в подкаталог (переадресация с главной)
- Переписывание URL-адреса
- Направим все URL в файл index.php
Редирект на страницу «со слэшем на конце»
Пример показывает как сделать перенаправление на страницу со слэшем на конце, со страницы у которой нет слэша на конце: /somepage → /somepage/ .
RewriteCond % !(/$|\.|wp-json) RewriteCond % ^$ RewriteRule . %/ [R=301,L]
Добавление www в URL
RewriteEngine On RewriteCond % ^example.com RewriteRule (.*) https://www.example.com/$1 [R=301,L]
Удаление www из URL
RewriteEngine On RewriteCond % ^www.example.com RewriteRule (.*) https://example.com/$1 [R=301,L]
Редирект на HTTPS (SSL)
Следующий код перенаправляет любой http-запрос на https. Т.е. при переходе на страницу http://example.com вас перекинет на https://example.com . Статические ресурсы (изображения, css и т.д.) также будут обработаны:
RewriteEngine On RewriteCond % !=on RewriteRule ^(.*)$ https://%% [L,R=301,NE] Header always set Content-Security-Policy "upgrade-insecure-requests;"
HTTPS перенаправление для WordPress
Никогда не добавляйте ваши правила внутри правил WordPress, внутри:
# BEGIN WordPress # END WordPress
Потому что эти правила авто-генерируются и ваш код в какой-то момент исчезнет!
Посетитель может ввести прямой HTTP URL на вашем сайте WordPress, даже если SSL-сертификат активен. Чтобы заставить любой HTTP-запрос перенаправляться на HTTPS, вы можете добавить код в файл WordPress .htaccess . Ниже приведены два варианта кода, которые вы можете использовать. Первый должен работать, как показано, но если нет, попробуйте второй вариант.
Вариант #1
RewriteEngine On RewriteCond % !=on RewriteRule ^(.*)$ https://%% [L,R=301,NE] Header always set Content-Security-Policy "upgrade-insecure-requests;" # BEGIN WordPress # The directives (lines) between `BEGIN WordPress` and `END WordPress` are # dynamically generated, and should only be modified via WordPress filters. # Any changes to the directives between these markers will be overwritten.RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond % !-f RewriteCond % !-d RewriteRule . /index.php [L] # END WordPress
Вариант #2
В этом примере обязательно замените example.com на ваше настоящее доменное имя.
RewriteEngine On RewriteCond % 80 RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L,NE] Header always set Content-Security-Policy "upgrade-insecure-requests;" # BEGIN WordPress # The directives (lines) between `BEGIN WordPress` and `END WordPress` are # dynamically generated, and should only be modified via WordPress filters. # Any changes to the directives between these markers will be overwritten.RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond % !-f RewriteCond % !-d RewriteRule . /index.php [L] # END WordPress
Редирект сайта на новый домен
Следующая строка перенаправляет все URL-адреса вашего сайта на новый сайт.
Redirect 301 / https://example.com/
Примеры простых редиректов отдельной страницы
Использование Redirect в файле .htaccess позволяет перенаправлять пользователей со старой страницы на новую без необходимости сохранения старой страницы.
Например, если вы используете index.html в качестве индексного файла, а затем позже переименуете index.html в home.html, вы можете настроить перенаправление для отправки пользователей с index.html на home.html:
Внутренний редирект на другую страницу
Redirect /path/to/old/file/old.html /path/to/new/file/new.html
Редирект страницы на страницу другого сайта
Redirect /path/to/old/file/old.html https://www.example.com/new/file/new.html
Первый путь к старому файлу должен быть локальным путем, а не полным путем. Так, если файл .htaccess находится в каталоге /example.com , не нужно включать /home/username/example.com в локальный путь. Первая / представляет каталог example.com . Если старый файл находился в этом каталоге, то после / следует имя старого файла.
Второй путь к новому файлу может быть локальным путем, но может быть и полным URL-адресом для ссылки на страницу на другом или том же сервере.
301 редирект каталога в HTML-файл
RedirectMatch 301 ^/blog/about /blog/about.html
Перенаправление файла index.html в другой каталог
Перенаправление с index.html на default.html
Redirect /index.html /default.html
Перенаправление локального каталога /private в каталог /private другого сайта
Redirect /private/ https://www.example.com/private/
Загрузка файла .gif с другого сайта
Убедитесь, что другой сайт является вашим собственным. Никогда не делайте горячих ссылок на файлы с других сайтов.
Redirect /img/logo.gif https://www.example.com/images/logo.gif
Использование регулярных выражений
Если вы хотите использовать регулярное выражение для перенаправления чего-либо, используйте директиву RedirectMatch:
RedirectMatch "^/oldfile\.html/?$" "https://example.com/newfile.php"
Перенаправление сообщений об ошибках
Вы также можете перенаправлять ошибки 404. Вместо того чтобы выводить страницу 404, вы перенаправляете на домашнюю страницу сайта.
ErrorDocument 404 https://example.com/
Перенаправление старого каталога в новый каталог
Этот пример перенаправляет файлы из старой директории /blog/archives в новую директорию /archives . Файл должен существовать в новой директории.
RewriteRule ^blog/archives/(.*)$ /newarchives/$1 [R=301,NC,L]
Направим запрос в подкаталог (переадресация с главной)
Этот пример перенаправляет запрос с главной страницы сайта в подкаталог. Т.е. при переходе на главную вас перенаправит в папку example.com/subdir1 :
RewriteEngine on RewriteRule ^$ /subdir1/ [L]
Переписывание URL-адреса
Этот пример переписывает URL в другой URL. В результате example.com/1.html переписывается в example.com/abc.php?id=1 .
Options +FollowSymLinks RewriteEngine On RewriteRule ^(5+).html /abc.php?id=$1 [QSA,L]
Ниже приведены пояснения к вышеуказанным правилам:
(4+) Ищет любые цифры повторяющуюся 1 или более раз. ([a-z-]*)
Ищет любые строчные буквы и знак — , 0 или более раз. Если нужно, чтобы поддерживались и прописные буквы, используйте ([a-zA-Z-]*) . Например:
RewriteRule ^place/([a-zA-Z-]*).html /place/abc.php?id=$1 [QSA,L][QSA,L] Делает сценарий последним выполненным правилом в htaccess. Т.е. если это правило сработало, то немедленно происходит редирект и никакой код ниже не выполняется.
Дополнительную информацию и примеры по mod-rewrite можно найти по следующей ссылке:
Направим все URL в файл index.php
Если посетитель пытается зайти на несуществующую страницу или запрашивает несуществующий файл, то обычно ему выдается ошибка 404. Вместо этого его запрос можно перенаправить файл index.php .
Следующая команда направляет все URL на index.php , если файл или каталог не существует физически.
Options +SymLinksIfOwnerMatch RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond % !-f RewriteCond % !-d RewriteRule . /index.php [L]
301 редирект с index.html и .php на главную страницу
Если главная страница Вашего сайта доступна по адресу site.ru и site.ru/index.html (или index.php), то такие страницы являются дублями для поисковых систем . В таком случае необходимо закрыть index.html (index.php) от индексации или настроить для них 301 редирект с site.ru/index.html (index.php) на site.ru.
Как закрыть index.html и index.php от индексации
Чтобы закрыть дубли страницы от индексации, необходимо выполнить следующие действия:
1. Войти на хостинг сайта или подключиться к нему через FTP:
2. Найти и скачать файл robots.txt:
3. Открыть файл и вставить следующие строки:
Внимание! Узнать о файле robots.txt подробнее Вы можете в этой инструкции.
4. Сохранить файл и загрузить обратно на хостинг.
Как настроить 301 редирект на главную страницу
Решить проблему с дублями главной страницы можно с помощью 301-го редиректа . Для этого необходимо:
1. Перейти на хостинг сайта или FTP-сервер.
2. Найти файл .htaccess в корневой папке:
3. Скачать его на рабочий стол и открыть через «Блокнот».
4. Найдите строчку RewriteEngine On и вставьте после неё следующие строки:
Для редиректа с index.php:
RewriteRule ^index\.php$ https://site.ru/ [R=301,L]
Для редиректа с index. html:
RewriteRule ^index\.html$ https://site.ru / [R=301,L]
Внимание! Не забудьте заменить https://site.ru/ на адрес Вашего сайта .
5. Сохранить файл и загрузить обратно на хостинг.
Как проверить редирект
Для проверки переадресации необходимо вставить URL-адрес сайта и перейти на него. Если произошла переадресация на главную страницу site.ru, то редирект сделан правильно.
Спасибо, что дочитали до конца. Переходите к следующей инструкции.
Как сделать редирект на HTML
Читайте нашу статью, если хотите узнать, что такое, для чего используется и как настроить редирект HTML.
Что такое редирект
Редирект — это перенаправление пользователя с одной страницы на другую. Когда пользователь вводит в адресной строке один URL-адрес, браузер автоматически переводит его на другой URL. Перенаправление можно настроить как на сторонний сайт, так и с одной страницы на другую внутри одного сайта.
Чаще всего используются такие редиректы:
- 301 редирект — его настраивают, когда страница навсегда перенесена на другой URL. При таком редиректе поисковики индексируют только новый вариант страницы — на неё и попадает пользователь.
- 302 редирект — его настраивают, когда страница перенесена временно. В этом случае поисковые системы индексируют и старый, и новый вариант страницы.
Для чего используют редирект
HTML redirect на другую страницу используют в таких случаях:
- перенос сайта на другой домен. Лучше всего настраивать редирект на другой сайт, в тот момент, когда старый сайт ещё ранжируется в поисковой выдаче;
- использование устаревших браузеров. Если часть посетителей пользуется старыми версиями браузеров, у них может не быть поддержки файлов Cookie и могут не работать другие способы перенаправления;
- показ новой информации с задержкой по времени — если нужно, чтобы редирект срабатывал не сразу. Допустим, вы проводите акцию на сайте и хотите привлечь к ней внимание. Для этого можно настроить переадресацию с главной страницы сайта на страницу акции;
- перенаправление пользователя на другую страницу сайта. Например, после оплаты покупки.
- перенос разделов на субдомены. Например, на странице вашего сайта site.ru/catalog был перечень услуг. Но набор услуг увеличивался, и со временем понадобилось перенести его на субдомен catalog.site.ru. В этом случае удобно настроить редирект с site.ru/catalog на catalog.site.ru;
- перенаправление нескольких доменов на один основной. Клиентам бывает сложно запомнить домен сайта. Поэтому часто владельцы сайтов регистрируют помимо основного домена схожие с ним доменные имена и настраивают редирект на основной сайт. Так клиенты с большей вероятностью попадут на основной сайт.
Настроить перенаправление можно несколькими способами:
HTML-редирект может замедлить продвижение сайта в поисковых системах. Рекомендуем его использовать только при отсутствии поддержки PHP, на тарифе хостинга Host-Lite.
В инструкции ниже мы расскажем, как настроить редирект посредством HTML.
Что такое HTML-редирект
Редирект на HTML настраивается в коде индексного файла. Индексный файл чаще всего называется index.html. Внутри файла в блоке head нужно прописать специальный метатег Refresh. При использовании метатега Refresh перенаправление срабатывает в коде страницы. Это значит, что перенаправляет не скрипт на сервере, а именно браузер.
Допустим, вы сделали HTML-редирект со страницы index.html на new_index.html. В этом случае перенаправление будет работать по такой схеме:
- Браузер запрашивает файл стартовой страницы index.html с сервера.
- Сервер находит index.html и отвечает на запрос браузера.
- Когда браузер открывает страницу index.html, он «читает» строки кода, которые прописаны в файле. Когда он доходит до строки с HTML-редиректом, то видит в ней упоминание файла new_index.html.
- Браузер посылает запрос к серверу, на котором хранится new_index.html.
- Сервер находит эту страницу и отвечает на запрос браузера.
- Браузер открывает страницу new_index.html.
Метатег Refresh выглядит так: