Руководство по настройке 301 редиректов в файлах htaccess и web.config
Редирект 301 (Moved Permanently 301) – этот код редиректа обозначает, что страница или сайт были перемещены на новый адрес и будут находиться там всегда. При этом пользователи будут направляться на новый адрес, а поисковики еще будут индексировать старый, в данном случае ссылочный вес передается в полном объеме.
Редирект через htaccess
Чтобы его выполнить, вам понадобится создать в папке сайта файл .htaccess. Если вы используете CMS WordPress или Joomla, то скорее всего этот файл у вас уже есть, в этом случае вам нужно будет просто отредактировать его.
Ниже предоставлены настройки, которые необходимо прописать в файл .htaccess для создания перенаправления.
Редирект сайта с http на https:
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Редирект со старой статической страницы на новую страницу:
RewriteEngine On
RewriteRule ^baza-znanij/nastrojka-301-redirekta/?$ /newpage [R=301,L]
Редирект на главную страницу:
RewriteEngine On
RewriteRule ^baza-znanij/nastrojka-301-redirekta/?$ / [R=301,L]
Редирект с главной на внутреннюю страницу:
RewriteEngine On
RewriteRule ^$ /baza-znanij/nastrojka-301-redirekta [R=301,L]
Редирект со страниц сайта с WWW на страницы без WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1%{REQUEST_URI} [R=301,L]
Редирект со страниц сайта без WWW на страницы с WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Следующий пример позволяет убрать слеш на конце 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]
Редирект URL с параметром на любую внутреннюю страницу сайта:
(Например, со страницы http://www.domain.ua/news.php?category=1 на http://www.site.ua/news.php?category=2 (здесь параметр category=)):
RewriteEngine On
RewriteCond %{QUERY_STRING} category=1
RewriteRule ^news.php http://www.domain.ua/news.php?category=2 [R=301,L]
Редирект URL с параметром на главную страницу сайта:
(Например, http://domain.ua/index.php?show_section=12 на главную страницу http://domain.ua/ (здесь параметр show_section=12)):
RewriteEngine On
RewriteCond %{QUERY_STRING} show_section=12
RewriteRule ^index.php http://site.ua/? [R=301,L]
Редирект со старого домена на новый (прописываем в .htaccess старого сайта):
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domainold\.ua$ [NC]
RewriteRule ^(.*)$ http://domainnew.ua/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^domainold\.ua$ [NC]
RewriteRule ^(.*)$ http://domainnew.ua/$1 [L,R=301]
Редирект с домена .УКР на домен .UA
Здесь важно знать, что .УКР зона преобразуется в .xn--j1amh, а само название кириллического домена в соответствующий код (punycode) на латинице xn-….
RewriteCond %{HTTP_HOST} ^xn-...\.xn--j1amh$ [NC]
RewriteRule ^(.*)$ http://www.yourdomain.ua/$1 [R=301,L]
301 редирект каталога:
RewriteRule ^old-dir/(.*) /new-dir/$1 [R=301,L]
Когда есть 2 сайта с одинаковой информацией, но в то же время доступные по разным адресам (сайты дубли). У этих сайтов одинаковый robots.txt, sitemap.xml и один на двоих .htaccess. Есть вариант 301 редиректа с неосновного такого сайта (domain2) на основной (domain1):
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain2.ua$ [OR,NC]
RewriteCond %{HTTP_HOST} ^www.domain2.ua$ [NC]
RewriteCond %{REQUEST_URI} !^/robots.*
RewriteRule ^(.*)$ http://www.domain1.ua/$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.ua/$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.ua$" />
</conditions>
<action type="Redirect" url="http://www.seowind.ua/{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.ua/" />
</rule>
</rules>
</rewrite>
Наш телеграм
с важными анонсами, розыгрышами и мемами
Присоединиться