База знаний:
Руководство по настройке 301 редиректов в файлах htaccess и web.config.
Автор , Last modified by на 26 May 2016 13:29 PM

 

Редирект 301 (Moved Permanently 301)этот код редиректа обозначает, что страница или сайт были перемещены на новый адрес и будут находиться там всегда . При этом пользователи будут направляться на новый адрес, а поисковики еще будут индексировать старый, в данном случае ссылочный вес передается в полном объеме. 

 

Редирект через htaccess :

Чтобы его выполнить, вам понадобится создать в папке сайта файл .htaccess. Если вы используете CMS WordPress или Joomla, то скорее всего этот файл у вас уже есть, в этом случае вам нужно будет просто отредактировать его. 
Ниже предоставлены настройки, которые необходимо прописать в файл .htaccess для создания перенаправления.

 

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

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteCond %{HTTP:X-Forwarded-Proto} !https

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

 

Редирект со старой статической  страницы на новую страницу:

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^www\.yourdomain\.ru$ [NC] 

RewriteRule ^baza-znanij/nastrojka-301-redirekta/$ http://www.yourdomain.ru/newpage/ [R=301,L]

 

Редирект на главную страницу: 

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^www\.yourdomain\.ru$ [NC] 

RewriteRule ^baza-znanij/nastrojka-301-redirekta/$ http://www.yourdomain.ru/ [R=301,L]

 

Редирект с главной на внутреннюю страницу

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^www\.yourdomain\.ru$ [NC] 

RewriteRule ^$ http://www.yourdomain.ru/baza-znanij/nastrojka-301-redirekta/ [R=301,L] 

 

Редирект со страниц сайта с WWW на страницы без WWW: 

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.yourdomain\.ru$ [NC] 

RewriteCond %{REQUEST_URI} !^/robots.* 

RewriteRule ^(.*)$ http://yourdomain.ru/$1 [R=301,L] 

 

Редирект со страниц сайта без WWW на страницы с WWW: 

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^yourdomain\.ru$ [NC] 

RewriteCond %{REQUEST_URI} !^/robots.* 

RewriteRule ^(.*)$ http://www.yourdomain.ru/$1 [R=301,L] 

 

Следующий пример позволяет убрать слеш на конце URL. 
Редирект 301 со страниц со слешем на конце на страницы без него: 

RewriteCond %{REQUEST_FILENAME} !-d 

RewriteCond %{REQUEST_URI} ^(.+)/$ 

RewriteRule ^(.+)/$ /$1 [R=301,L] 

 

А здесь добавляем слеш в конец URL: 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteCond %{REQUEST_URI} !(.*)/$ 

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

 

301 редирект с index.php на главную: 

RewriteEngine On 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 

RewriteRule ^index\.php$ http://www.yourdomain.ru/ [R=301,L] 

 

Редирект всех внутренних страниц на главную: 

RewriteEngine On 

RewriteCond %{ENV:REDIRECT_STATUS} ^$ 

RewriteRule !(^$|.*\.(css|jpg|gif)) / [R=301,L]

 

Редирект URL с параметром на любую внутреннюю страницу сайта:(Например, со страницы http://www.domain.ru/news.php?category=1 на http://www.site.ru/news.php

category=2 (здесь параметр category=)): 

RewriteEngine On 

RewriteCond %{QUERY_STRING} category=1 

RewriteRule ^news.php http://www.domain.ru/news.php?category=2 [R=301,L] 

 

Редирект URL с параметром на главную страницу сайта: (Например, http://domain.ru/index.php?show_section=12 на главную страницу http://domain.ru/ (здесь параметр

show_section=12)): 

RewriteEngine On 

RewriteCond %{QUERY_STRING} show_section=12 

RewriteRule ^index.php http://site.ru/? [R=301,L] 

 

Редирект со старого домена на новый (прописываем в .htaccess старого сайта): 

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^www\.domainold\.ru$ [NC] 

RewriteRule ^(.*)$ http://domainnew.ru/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^domainold\.ru$ [NC] 

RewriteRule ^(.*)$ http://domainnew.ru/$1 [L,R=301] 

 

Редирект с домена РФ на домен RU. Здесь важно знать, что РФ зона преобразуется в .xn--p1ai, а само название кириллического домена в соответствующий код (punycode) на латинице xn-.... 

RewriteCond %{HTTP_HOST} ^xn-...\.xn--p1ai$ [NC] 

RewriteRule ^(.*)$ http://www.yourdomain.ru/$1 [R=301,L] 

301 редирект каталога: 

RewriteRule ^(.*)/old-catalog/(.*)$ $1/new-catalog/$2 [R=301,L] 

 

Когда есть 2 сайта с одинаковой информацией, но в то же время доступные по разным адресам (сайты дубли). У этих сайтов одинаковый robots.txt, sitemap.xml и один на двоих .htaccess. Есть вариант 301 редиректа с неосновного такого сайта (domain2) на основной (domain1): 

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^domain2.ru$ [OR,NC] 

RewriteCond %{HTTP_HOST} ^www.domain2.ru$ [NC] 

RewriteCond %{REQUEST_URI} !^/robots.* 

RewriteRule ^(.*)$ http://www.domain1.ru/$1 [R=301,L] 

 

Вставка включающая в себе все редиректы со страниц index|default с расширениями htm|html|php|asp|aspx на главную

RewriteEngine On 

RewriteCond %{THE_REQUEST} ^GET\ .*/(index|default)\.(htm|html|php|asp|aspx)\ HTTP 

RewriteRule ^(.*)(index|default)\.(htm|html|php|asp|aspx)$ http://www.site.ru/$1 [R=301,L]

 

 Редирект через web.config :

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

 

Пример редиректа со страниц без WWW на страницы с WWW в web.config для IIS: 

<system.webServer> 

<rewrite> 

<rules> 

<rule name="Redirect to WWW" stopProcessing="true"> 

<match url=".*" /> 

<conditions> 

<add input="{HTTP_HOST}" pattern="^seowind.ru$" /> 

</conditions> 

<action type="Redirect" url="http://www.seowind.ru/{R:0}" redirectType="Permanent" /> 

</rule> 

</rules> 

</rewrite> 

Пример редиректа со страницы default.aspx на главную в web.config для IIS: 

<system.webServer> 

<rewrite> 

<rules> 

<rule name="Imported Rule 1"> 

<match url="^default\.aspx" ignoreCase="false" /> 

<conditions> 

<add input="{QUERY_STRING}" pattern="^$" ignoreCase="false" /> 

</conditions> 

<action type="Redirect" redirectType="Permanent" url="http://www.seowind.ru/" /> 

</rule> 

</rules> 

</rewrite> 

 

(2 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)
Добавить новый комментарий
 
 
Полное имя:
Email:
Комментарии:
Проверка CAPTCHA 
 
Пожалуйста, введите текст, находящийся на изображении, в текстовое поле ниже (этот метод используется для предотвращения отправки автоматических сообщений).