Редірект 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> 

 

Ця відповідь Вам допомогла? 4 Користувачі, які знайшли це корисним (8 Голосів)