База знаний
301 редирект через .htaccess
Опубликовано Денис Завьялов on 18 December 2018 12:29

В данной статье мы рассмотрим некоторые варианты переадресации(редиректа).

Определимся с основными условиями:

  • Правила переадресации указываются в файле .htaccessкоторый находится в корне Вашего сайта. Если по какой-то причине такого файла там нет, то просто создайте его самостоятельно.
  • В начала файла активируем mod_rewrite с помощью правила:
    RewriteEngine On
  • При настройке редиректа необходимо соблюдать корректную последосвательность. А именно: простая переадресация с одной страницы на другую указывается перед глобальной переадресацией.
  • Перед проверкой внесенных изменений необходимо очистить кеш браузера.

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

1) Обычный 301 редирект с одной страницы на другую:

Redirect 301 /page-1/ http://site.ru/page-2/

2) Редирект index файла на основной сайт:

RewriteCond %{REQUEST_URI} /index.php
RewriteRule ^(.*)$ http://site.ru/ [R=301,L]

3) Редирект с www на без www:

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

4) Редирект с без www на www:

RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
5) Убираем слеш в конце страницы:
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} ![^\/]$
RewriteRule ^(.*)\/$ /$1 [R=301,L]

6) Перенаправляем все страницы одного домена на другой:

RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://site.ru/ [L,R=301]
7) Перенаправляем все страницы одного домена на такие же другого:
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://site.ru/$1 [L,R=301]

Что касается переадресаций с HTTP на HTTPS, то данная тема расмотрена в отдельной статье - Редирект / переадресация с HTTP на HTTPS

 

(0 голос(а))
Эта статья помогла
Эта статья не помогла

Коментарии (0)