301 редирект: лучшее руководство по настройке


Рубрика:  База знаний SEO | Автор: Юрий Макаров


301 код ошибки (Moved Permanently) означает, что данная страница или весь сайт перемещены на новый постоянный URL навсегда. Используется для передачи ссылочного веса. Обязательно проверяйте какой код ошибки отдает сервер, когда настроите данный редирект. Я использую для этого, например, замечательный плагин Firebug для Firefox.

Настройка 301 редиректов, если у Вас веб-сервер linux Apache, происходит в файле .htaccess. А в случае windows веб-сервера IIS - это будет файл web.config.

301 редирект на различных CMS, таких как wordpress, битрикс, друпал, dle, modx, joomla, opencart и других, настраивается с помощью специальных плагинов, а также обычным способом через htaccess или web config.

Основные операторы регулярных выражений

Перед тем, как настраивать правильные 301 редиректы в файле .htaccess нужно чётко различать основные операторы регулярных выражений (спецсимволы, модификаторы, флаги):

спецсимволы:

  • ^ - ограничение слева (начало строки);
  • $ - ограничение справа (конец строки);
  • . - любой символ;
  • () - переменная;
  • \ - экранирование (символ после \ считается обычным, а не спецсимволом);
  • [] - диапазон значений;
  • ! - спецсимвол отрицания;

модификаторы:

  • ? - символ повторяется 0 или 1 раз;
  • + - 1 и более символов (до 65536);
  • * - 0 и более символов (до 65536);

Настройка 301 редиректов в файлах htaccess и web.config

Я публикую здесь только проверенные и технически законченные рабочие варианты 301 редиректов. База рабочих вариантов 301 редиректов будет пополняться.

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

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.seowind\.ru$ [NC]
RewriteRule ^baza-znanij-seo/nastrojka-301-redirekta/$ http://www.seowind.ru/newpage/ [R=301,L]

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

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.seowind\.ru$ [NC]
RewriteRule ^baza-znanij-seo/nastrojka-301-redirekta/$ http://www.seowind.ru/ [R=301,L]

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

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.seowind\.ru$ [NC]
RewriteRule ^$ http://www.seowind.ru/baza-znanij-seo/nastrojka-301-redirekta/ [R=301,L]

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

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.seowind\.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/robots.*
RewriteRule ^(.*)$ http://seowind.ru/$1 [R=301,L]

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

RewriteEngine On
RewriteCond %{HTTP_HOST} ^seowind\.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/robots.*
RewriteRule ^(.*)$ http://www.seowind.ru/$1 [R=301,L]

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

Редирект 301 со страниц со слешем на конце на страницы без него:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

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

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.seowind.ru/ [R=301,L]

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

RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule !(^$|.*\.(css|jpg|gif)) / [R=301,L]

Редирект урла с параметром на любую внутреннюю страницу сайта: (Например, со страницы http://www.site.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.site.ru/news.php?category=2 [R=301,L]

Редирект урла с параметром на главную страницу сайта: (Например, http://site.ru/index.php?show_section=12 на главную страницу http://site.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\.siteold\.ru$ [NC]
RewriteRule ^(.*)$ http://sitenew.ru/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^siteold\.ru$ [NC]
RewriteRule ^(.*)$ http://sitenew.ru/$1 [L,R=301]

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

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

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

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

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

RewriteEngine On
RewriteCond %{HTTP_HOST} ^site2.ru$ [OR,NC]
RewriteCond %{HTTP_HOST} ^www.site2.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/robots.*
RewriteRule ^(.*)$ http://www.site1.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]

Пример редиректа со страниц без 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>

301 Редирект через PHP

<?php
header("Location: http://newdomain.ru/new/location/", true, 301);
?>

Оставьте отзыв в виде оценки к записи: " 301 редирект: лучшее руководство по настройке"

1 звезда2 звезды3 звезды4 звезды5 звёзд (Оставлено голосов: 16, оценка: 4,94 из 5)
Загрузка...

Комментарии и отзывы

72 коммент. к записи "301 редирект: лучшее руководство по настройке"
  1. voleyko :

    То есть, если я правильно поняла, при установке ЧПУ, если у меня до этого были адреса страниц вида /p1234? мне необходимо перенаправлять каждую страницу на новый адрес?!

  2. Марат :

    вот эта строка:
    RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]

    разве в ней не нужен слеш, экранирующий точку?

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

    Иначе… Конечно, работать будет, но …гм… точка означает любой символ, либо его отсутствие, и дальше часть «ru»

    • admin :

      Добрый день, Марат!
      Можно так как написали Вы, а можно так не делать — как это есть и в моих примерах.
      Ошибкой не будут оба варианта. Они рабочие.

      • Марат :

        Работать-то конечно будут оба варианта.))) Но т.к. Вы мой коллега — не могу пройти мимо. Если бы теоретически существовал вот такой домен www(точка)sitea(точка)ru, то он бы проскочил этот фильтр, т.к. буква «a» подпадает под точку.

        И, кстати, после www тоже точка стоит, и она требует экранирования.

        • admin :

          Коллега, пожалуй соглашусь с Вами. Случай с экранированием — более общий случай и он учитывает и случай, который Вы показали для примера. Спасибо за дополнения по редиректам. Я внесу соответствующие изменения в статью.

  3. Андрей :

    Добрый день, администратор этого сайта. Отличная статья, но я не нашел примера моего редиректа. Подскажите пожалуйста как будет выглядить редирект 301 в этом случаи:

    c site(точка)ru/good(точка)php на чпу ссылку site(точка)ru/good_page/

    заранее спасибо.

    • admin :

      Добрый вечер, Андрей!
      Попробуйте, пожалуйста, так

      RewriteEngine On
      RewriteRule ^(.*)good.php$ http(двоеточие)//site(точка)ru/good_page/ [R=301,L]

      • Андрей :

        RewriteEngine On
        RewriteRule ^(.*)good.php$ http://site.ru/good_page/ [R=301,L]

        спасибо за ответ, но вариант не работает. Ибо перебрасывает на http://site.ru/good_page/ — в итоге имеем не существующую страницу. Сервер пишет: страница не найдена. Так кстати я тоже пробовал, если просто переходить, то ссылка работает, а если редиректом не работает. Понять пока не могу почему так.

        • admin :

          Андрей, будет лучше, если Вы напишите урлы живого своего сайта. Я вот тоже не могу понять почему так. Ведь вариант должен работать.

      • Михаил :

        Подскажите, а если мне нужно сделать редирект.
        как сделать редирект страниц с wordpress на страницы html.
        Подскажите, буду очень благодарен

  4. Infineon :

    Здравствуйте.
    Проблема вот в чем: после вставки строк:

    RewriteEngine On
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ http://www.site.ru/ [R=301,L]

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

    • Infineon :

      Все, решил проблему.

      • admin :

        А в чём хоть дело было?

        • Infineon :

          Движок Joomla 2.5.4.
          В Основных настройках включил Перенаправление URL и нормально стало. А до этого вроде страницу кеширует, ни залогиниться ни вылогиниться.

  5. Артем :

    Забыл самый простой редирект:
    Redirect 301 /old-page http://site.by/new-page

  6. sopus :

    А не подскажете как сделать редирект с несуществующих страниц сайта на http://site.ru/page1/

    • admin :

      Честно говоря такой редирект никогда не делал и более того скажу, что так делать неправильно! Это как оптимизатор говорю. Любая несуществующая страница должна отдавать 404 код ошибки, а редирект подразумевает 301 код.

  7. Николай :

    Спасибо! Самый хороший, полный и понятный пост про редиректы на данный момент. Для полноты картины не хватает только редиректов со слешем и без на конце.

    Например, такой код:

    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !(.*)/$
    RewriteRule ^(.*[^/])$ $1/ [L,R=301]

    Есть и другие варианты, но почему-то работают не всегда. Этот вроде надёжный.

  8. CanaBeasT :

    Добрый день. Подскажите, пожалуйста, как решить такую задачу.

    Перенес сайт с джумлы на вордпресс. В джумле страницы вида:
    site.com/category/zdorove-mamy-i-rebenka.html (на конце .html).

    Мне нужно сделать 301 редирект на страницы без html на конце, вида
    site.com/category/zdorove-mamy-i-rebenka/ (со слешем либо без на конце).

    Спасибо (желательно не силами движка ВП, а именно .htaccess).

  9. CanaBeasT :

    Помог друг. Вот решение. Добавить нужно к существующим записям:

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

  10. Антон :

    Здравствуйте, нужна помощь, нигде не могу найти ответа. Сайт сделан на Ajax и имеет адрес типа http://www.site.ru/#!/page_1 . Символ #! яндекс преобразует в параметр ?_escaped_fragment_= . Как сделать, чтобы страницы типа http://www.site.ru/?_escaped_fragment_=/page_1#!/ (page_1 -разные страницы на сайте) переходили на страницы вида http://www.site.ru/#!/page_1

    • Recky :

      Насколько я понимаю, то задача состоит вовсе не в перенаправлении на страницу с AJAX ( /#!page1 ), а на версию этой страницы, но в html варианте, по этому нужен редирект на такую страницу с определенным адресом. Например можно просто отбрасывать ?_escaped_fragment_= и оставлять только страницу. Попробую реализовать, если получится дам знать.

  11. джей :

    Добрый день, помогите, не могу определиться! Есть сайт, который имеет около 20-ти страниц, типа http://www.sait.ru/produkt.html.

    Все страницы находятся в корневом каталоге в формате HTML, но когда нужно что-то менять на сайте, например, номер телефона, то приходится редактировать все страницы сайта. Поэтому решил создать базу данных на PHP-mysql.

    Страницы удается назвать в PHP-mysql только таком виде — http://www.sait.ru/produkt/. Версия php на хостинге PHP 5.2.10 и rewrite_module включен. Прошу вашей профессиональной помощи.

    Как правильно настроить редирект со старых адресов типа produkt.html на новые адреса, типа /produkt/ при этом сохранить все возможные привилегии от поисковиков?.

    Старые адреса типа produkt.html, будут удалены из корневого каталога, сразу после создании в базе данных новых адресов, типа /produkt/. Пожалуйста, еще вопрос: если будут меняться названия страницы таким образом, например:

    • — produkt.html превратится на /produkt/
    • — catalog.html превратится на /catalog/

    Их 20 штук и все они разные.
    Можно прописать редирект один раз для всех страниц? или же придется писать для всех страниц по отдельности?

    Возник еще вопрос, тоже немало важный. Почему-то, когда открываешь в строке поиска любые страницы, которых нет в базе данных, открывается шаблон страницы без контента, пример:
    типа http://www.sait.ru/pro/ или же типа http://www.sait.ru/drt/. В общем, если написать любое слово или несколько любых букв между слешами, открывается шаблон без контента.

    Еще пример для динамических сайтов:
    http://www.sait.ru/index.php?page=1000, если на место 1000 написать любые цифры, которых нет в базе данных, открывается также пустой шаблон сайта.

    Вопросы:

    1. 1. Эти моменты на сколько негативно влияет на раскрутку сайта?
    2. 2. Можно ли настроить хтаксес так, чтобы при поиске этих страниц открывались 404 ошибка?
    3. 3. Или же эти проблемы не решается через файл хтаксес?

    Заранее спасибо !

  12. ДЕМОН :

    в шестом варианте добавьте вопросительный знак после index.php, иначе в адресной строке показывается старый параметр

  13. Руслан :

    Здравствуйте. у меня пара вопросов по редиректу: как правильно редактировать файл htaccess?? как я понял из него всё удаляется и вставляется один из ваших примеров? или как то ещё? я попробовал сделать так как написано в примерах, но при переходе на сайт редирект не срабатывает. и второй вопрос: какой метод мне больше подходит если сайты расположены на одном хост-аккаунте но в разных корневых папках?
    Заранее благодарен!

  14. Андрей :

    Здравствуйте! Подскажите, пожалуйста, как сделать 301 редирект со страниц вида site.ru/page на страницы вида site.ru/page.html? Если в данной статье есть ответ, продублируйте если не сложно, сам не разобрался.
    Заранее спасибо!

  15. Андрей :

    Кстати, подскажите вариант также для site.ru/page/ -> site.ru/page.html

  16. Марина :

    Добрый день!

    Не могли бы Вы мне подсказать такую ситуацию:

    Был сайт http://site.net сделанный на WP, и соответственно имел страницы такого вида

    http://site.net/?page_id=450

    теперь сайт переделали на Joomla и та же страница стала иметь такой вид

    http://site.net/azbuka.html

    Как правильно сделать 301, чтобы не потерять PR?

    Так:

    Redirect 301 /?page_id=450 http://site.net/azbuka.html

    Или так:

    RewriteCond %{QUERY_STRING} ^id=450$
    RewriteRule ^/page.php$ http://site.net/azbuka.html%5BL,R=301%5D

    Буду очень благодарна за ответ, а то шеф уволить обещал…)

  17. Евгений :

    Здравствуйте.
    Подскажите, как правильно сделать:
    есть сайт с адресами site.ru/catalog/item, надо сделать site.ru/item

    Спасибо

  18. Дмитрий :

    Добрый день.
    Подскажите плс были ссылки с кирилицей
    http://moisait.ru/накидки/жара_550/ а стали
    http://moisait.ru/nakidki/thara_550/
    как привильно настроить редирект?
    Заранее спасибо.

  19. Александр :

    Добрый день!
    Как прописать такой редирект?
    http://bla-bla.com/category/televizor —> bla-bla.com/category/televizor/?pole

  20. Andrey Szestkov :

    Спасибо за полезные советы, но у меня вот какая проблема. Я сделал новый сайт для компании на движке Joomla, а старый был на Drupal. Да и доменное имя перенес на новый хостинг. Новый сайт Яндекс пока не индексирует и все ссылки только на старый. Главная страница совпадает и это хорошо, по ней посетители попадают на новый сайт, а вот остальные страницы — нет. При переходе по ним у меня показывает ошибку 404.

    Можно ли, в данном случае, сделать редирект или что-то другое, чтобы люди проходя по старой ссылке http://site.ru/montajnoe переходили на новую http://site.ru/index.php/ru/o-kompanii/montazhnoe-upravlenie-mitol.html и т.д. по всем старым ссылкам. Если не сложно, ответьте на почту maycompani@gmail.com.

    С уважением, Андрей.

  21. Ann :

    Спасибо! 🙂
    Одной проблемой меньше благодаря вам.

  22. Andrei :

    Если запросить заведомо некорректный URL вида http://site.ru/?N, где N – любой численный или строковый параметр, например http://site.ru/?qwerty, сервер отдаёт 200 ОК. Хотя, по идее, правильно было бы 404 Not Found или 301 Moved Permanently. Что вроде как реализовывается при помощи модуля Mod_rewrite. Прав ли я? И если да, то, как можно исправить ситуацию?
    Спасибо.

  23. admin :

    В таком случае правильно отдавать 404 Not Found. 301 в таком случае делать не надо.

  24. stylewomens :

    А как мне со старых страниц, на новые сделать редирект? если там 3 параметра ?i= &add &pg

  25. Guesser :

    Автору огромный респект! Только здесь нашёл исчерпывающую информацию о всевозможных редиректах. Да ещё и с конкретными примерами, готовыми к использованию. Спасибо!

  26. Andrei :

    Но я так понимаю, что это не критично, т.к. сколько сайтов я не смотрел у всех такого рода конструкция http://site.ru/?qwerty, отдаёт 200 ок, хотя, как я уже писал выше, вроде как не должен сервер по правилам отдавать 200 ок, но по ходу никто не заморачивается. У вас тоже, кстати, 200 ок.

  27. admin :

    Да, Andrei — это распространенная проблема у многих. В идеале должна отдаваться 404 ошибка. Но если такое сделать не получается то хотя бы в robots.txt закрывается, например, как у меня: Disallow: /*?* — этого будет во многих случаях хватать.

  28. Александр :

    здравствуйте, подскажите как в htaccess сделать несколько 301 редиректа по параметру:

    RewriteCond %{QUERY_STRING} category=1
    RewriteRule ^news.php http://www.site.ru/news.php?category=2 [R=301,L]

    а то я когда прописываю такие же 2 строчки ниже с другими параметрами, ничего не выходит, а мне нужно 6 страниц перенаправить 301 редиректом.

  29. admin :

    Александр, должно работать! Скиньте мне реальные урлы вашего сайта

  30. vulkan3 :

    Скажите а редирект 301 можно сделать с идентификатором «?sid=003acc58c948ea31227f87671154fc3f» в phpbb3, чтобы если в строке присуттвует «sid» то он автоматом перебрасывается на главную 301

  31. Александр :

    Вот что у меня в htaccess. RewriteCond %{QUERY_STRING} id=5&Itemid=2
    RewriteRule ^index.php http://www.mosdivecen.com/index.php?option=com_content&view=article&id=28&Itemid=118 [R=301,L]

    но мне помимо этого редиректа нужно сделать еще 3-4 таких же
    приведу их в порядке «откуда -> куда » :

    http://www.mosdivecen.com/index.php?option=com_content&view=article&id=2&Itemid=25
    ->
    http://www.mosdivecen.com/index.php?option=com_content&view=article&id=47&Itemid=159

    http://www.mosdivecen.com/index.php?option=com_content&view=article&id=3&Itemid=4
    ->
    http://www.mosdivecen.com/index.php?option=com_content&view=article&id=28&Itemid=145

    вот так вот, помогите пожалуйста

  32. Евгений Титов :

    День добрый уважаемый администратор, у меня вот в чем проблема: Я в адрес страниц добавил название категорий, до этого их небыло, было вида http://sait.ru/bro/ потом стало вида: http://sait.ru/category/bro/. Как мне настроить в данном случае редирект 301?

  33. Александр :

    Добрый день!
    Подскажите пожалуйста по ситуации.
    Есть сайт, на главной странице разделение на два направления, реализованное через поддомены. Одно из направлений закрыли, осталось только другое.
    Подскажите пожалуйста как грамотно прописать редирект, чтобы пользователей с главной страницы перенаправляло сразу в рабочее направление?
    Пробовал сам по образцам через 301, получалось только сделать так, что поддомен в адресе почему то пропадал и прежняя страница направления начиналась с site.ru, а ранее было с поддоменом (podomen.site.ru). Оставлять этот вариант не стал, опасаясь потерять ТИЦ и PR сайта в поисковиках и нарушения работы контекстной рекламы. Оставил все по старому. Сижу ломаю голову.

  34. Ксения :

    Добрый день! Помогите пожалуйста, не пойму где допустила ошибку.

    Сделала 301 редирект и он не работает:

    Redirect 301 /catalog?cat=1&subcat=15&id=53 http://www.site.ru/catalog/kak-delat/ne-mogu/ponyat

    Подскажите в чем ошибка? Буду очень благодарна!

  35. Роман :

    Здравствуйте! У меня ситуация следующая: хочу полностью переделать свой сайт. Он у меня работает на Joomla 1.5, хочу посадить его на Joomla 2.5. Часть разделов полностью уберу, часть будет доступна по новому адресу. Те, которые будут доступны по новому адресу, я вручную перенаправлю, это понятно. Но что мне сделать, чтобы все остальные страницы, которые более не существуют, выдавали бы редирект на главную страницу?

    Например: сейчас у меня есть раздел с новостями из мира компьютеров и прочего, но мне он больше не нужен, и я хочу от него избавиться. В то же время часть страниц из этого раздела проиндексированы и люди часто на них переходят. Когда раздел я ликвидирую, будет открываться 404, а хотелось бы, чтобы их просто перебрасывало на главную. Это возможно?

  36. Егор :

    попробовал уже «десяток» способов! и не один не спасает меня от расширений страницы в конце урла. есть ссылки вида frfrfrf.in.ua/folder1/sssss.html и в корне сайта тоже такая же ерунда!

    помогите пожалуйста!

  37. Александр :

    Здравствуйте! Подскажите пожалуйста как сделать редирект с /index.php?section=services на /light.php . Заранее благодарю!

  38. Ростислав :

    Здравствуйте, подскажите пожалуйста как можно сделать 301 редирект с параметром после /
    Ситуация в том, что был адрес ввиде http://site.com/ru/Models/devushki-modeli-portfolio/Inna_V/
    сайт был переделан и ЧПУ автоматом загнало ввиде http://site.com/portfolio/Inna-V/
    по своей сути я могу сделать редирект на страницу портфолио, но вот как сделать так чтобы нижнее подчеркивание становилось дефисом
    /Inna_V/ — генерировалось в /Inna-V/

  39. Константин :

    Здравствуйте.
    У меня зарегистрировано 2 домена: в зонах ORG и RU, которые физически смотрят на один сайт.
    Написал вот так:
    RewriteCond %{HTTP_HOST} ^site-soft.org$ [OR,NC]
    RewriteCond %{HTTP_HOST} ^www.site-soft.org$ [NC]
    RewriteRule ^(.*)$ http://www.site-soft.ru/$1 [R=301,L]
    но что-то не вижу эффекта :((

  40. Владимир :

    Здравствуйте. Просьба помочь (редирект 301).

    Вопрос такой. Как влияет на индексацию ситуация, когда исходный и целевой URL одинаковые? Такое может происходить в данной схеме:
    есть страницы вида sait.com/product/12345/. На сайте ранее был настроен редирект 301 с этих на страницы с ЧПУ sait.com/product/12345/nazvanie-tovara.

    Сделано, чтобы можно было произвольно менять название товара, не теряя страницу. Настройка такая, что если после слеша ничего нет, то идет редирект 301. Если есть хотя бы один знак, то ответ 200 OK.

    Проблема в том, что при таком решении старые URL остаются в индексе. Если сделать 301 редирект без учета параметров, то возникают случаи, когда исходный и целевой URL одинаковые. Нигде не нашел информации о подобных случаях. Спасибо.

  41. инна :

    Добрый день! Помогите пожалуйста с 301 редиректом . Перенесла сайт на вордпресс и встал вопрос правильного редиректа.
    для ссылок вида:
    1. Redirect 301 /?pod=443&id=1442 http://mysait.com/kalendar-2013/
    2. Redirect 301 /chelovek_i_medicina.php http:/mysait.com/?pod=44&id=188

  42. Виктор :

    Помогите составить синтаксис.
    Некоторые страницы переместились внутрь другой категории.

    Старая ссылка: http://www.site.ru/page.html
    Новая ссылка: http://www.site.ru/category/page.html

    Спасибо.

    • Виктор :

      Выражусь чуть яснее.

      Нужна универсальная строка (шаблон) редиректа всех следующих страниц входящих в старую категорию, которая изменила свой путь (вошла внутрь новой категории).

      Старый путь: http://www.site.ru / OLDcategoty / *все другие последующие страницы*
      Новый пусть: http://www.site.ru / NEWcategory / OLDcategory / *все другие последующие страницы*

  43. Артур :

    Спасибо за статью!
    Подскажите, пожалуйста, нужен вариант:
    10. 301 редирект со старого домена на новый. Прописываем данный код в .htaccess старого сайта.

    Но новый сайт у меня на рф, т.е. домен с кириллицей, не подскажите как в данном случае необходимо прописывать?

  44. Максим :

    Здравствуйте. Можно ли комплексно решить проблему перехода?

    На старом сайте страница товара выглядела так:
    http://site.ru/product/kamkordery/sony-pmw-f5

    На новом — такой вариант:
    https://site.ru/product/sony-pmw-f5/

    Можно ли прописать команду перенаправления, в которой игнорируется категория (в данном случае -/kamkordery/)?

  45. Валерия :

    Здравствуйте! Подскажите пожалуйста) Мне, простому смертному, можно в Ваши готовые редиректы адреса своего сайта навставлять и все?))) Сайт сама создала, сейчас до редиректа дошла… вообще ничего в этом не понимаю… или лучше обратиться к спецу, чтоб мне сделал?

  46. Блогозапись :

    Привет Всем!!!! Эта шпаргалка мне очень помогла. А то в одном посмотришь по одному, в другом по другому. Окончательный ответ нашел здесь. Думаю все правильно сделано. Спасибо автору.

  47. Анатолий :

    Здравствуйте!

    А как перенаправить например с http://mysite.ru/malina.html на http://mysite.ru/malina, то есть на ту же страницу, только без расширения?
    Готовлю сайт на голом html к переезду на ВордПресс, где страницы у меня пишутся без расширений.

  48. Анатолий :

    Помогли в одной веб-студии (немного небесплатно).

    Вот какой код они дали, но я его пока не использовал потому что пока работаю на локальном сервере. Поэтому за работоспособность ничего сказать не могу.

    Redirect 301 / http://mysite.ru/$1/
    RedirectMatch 301 ^/([^.]+)\.html http://mysite.ru/$1/

  49. Алексей :

    Здравствуйте, Юрий!

    У меня в ссылках на категории есть два параметра c и r выглядят так: http://mysite.ru//vac.php?r=6&c=17
    Но Яндекс проиндексировал эти страницы поменяв параметры местами, что не очень хорошо.
    Подскажите как написать редирект со страниц типа vac.php?c=17&r=6 на страницы где параметр r будет первым стоять? Значения параметров меняются, конечно.

  50. Марианна :

    Добрый день.
    Извините мне мою непонятливость, но мне очень нужно понять, как прописать редирект.
    У меня с сайта на сайт переезжает целый раздел, правильно ли я понимаю, что на старом сайте мне нужно прописать такие строчки:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.старыйсайт\.ru$ [NC]
    RewriteRule ^/category/pricheski-sebe-video/$ http://новыйсайт.ru/category/pricheski-sebe-video/ [R=301,L]

    И нужно ли мне прописывать редирект для каждой статьи в этом разделе?

    Буду очень признательно за ответ, почему-то эта тема ни как не укладывается в голове.

  51. Сергей :

    Здравствуйте уважаемый автор! Помогите пожалуйста сделать редирект!
    с nedvizhimost/arenda-komnat/103-www/index.php на nedvizhimost/arenda-komnat/103-www

    То есть чтоб index.php автоматически всегда убирался при любой ссылке

  52. myhelpers :

    301 редирект для мультиязычного сайта на Joomla 3 c 303 редиректом

    Здравствуйте, уважаемые!

    Прошу помочь решить следующую насущную для мультиязычного сайта на Joomla 3 и, думаю, многих других CMS, проблему:
    При создании нескольких языковых версий сайта средствами мультиязычности самой CMS получается следующее:
    http://domain.ru -с русским языком
    http://domain.ru/ru/-русская версия сайта(является основным языком сайта)
    http://domain.ru/en/-английская версия сайта
    http://domain.ru/de/-немецкая версия сайта
    и если средствами Joomla 3 удалять префикс /ru/ из адресной строки, то срабатывает 303 редирект, что есть нехорошо, т.к. для SEO нужен 301 редирект.
    Если же не убирать префикс в настройках Joomla 3, то будет существовать domain.ru/ru/ и domain.ru с русским языком, т.е. дубли.
    Как посредством .htaccess убрать префикс /ru/, т.е. сделать 301 редирект с domain.ru/ru/ -> domain.ru и чтобы в последующем переключение языков на сайте было корректным.

    В течение 2-x недель поиска информации в интернете опробовал разные куски кода в htaccess, но рабочего варианта так и не нашел.
    Распишите, пожалуйста, подробно как решить эту проблему, т.к. с этим вопросом не могут справится куча народа, как в русскоязычном сегменте интернета, так и за рубежом, либо опишите другие возможные варианты решения. Если вам несложно, то вышлите мне решение на почту myhelpers@mail.ru , чтобы быстрее смог его реализовать.
    Если для кого-то это тривиально, то простите за незнание! 🙂

  53. Павел :

    Здравствуйте!

    Спасибо за статью.
    У меня немного нестандартный вопрос.
    Есть чужой site1.ru и мой site2.ru.
    Мне надо сделать, чтобы при заходе на мой сайт, пользователь переадресовывался на определенную ссылку на site1.ru, например, site1.ru/mylink.
    Таким образом, мне также надо, чтобы мой сайт выдавался в поиске, и чтобы пользователи попадали на site1 именно через мой site2.ru.
    Как лучше сделать такое?

    Заранее спасибо.

  54. Татьяна :

    Огромное спасибо за статью. Переносила сайт клиента с длинными урлами на более короткие ЧПУ, очень переживала, что 301 работать не станет и позиции в поисковиках послетают т.к. был опыт подобного Redirect 301 /old-page http://site.by/new-page редиректа на другом сайте и ничего не заработало. Но, настроила так как Вы описали и всё работает. Аж камень с души упал.

  55. Андрей :

    Сайт установлен на суббдомене как мне прописать что бы перенаправлялся на основной домен

  56. Сергей :

    Добрый день.
    Может подскажете как убрать дубль сайта через 301 редирект? Сейчас страницы сайта открываются как с 1 слешем в середине УРЛа, так и с 2-м слешем.
    Пример: http://site.ru/Krovat-Murzilka_3053t.html и http://site.ru//Krovat-Murzilka_3053t.html
    И есть ли возможность убрать _3053t.html путём добавления строк в .htaccess?
    Спасибо.

  57. Валерий :

    Подскажите как должен выглядеть код в моем случае:
    Редирект с http://oldsite.su/index.php на http://newsite.ru/

  58. Григорий :

    Руководство подробней не бывает. Но в моем случае немножко не работает. Поясню. Перешел по счетчику ливинтернета, зашел в поисковые фразы, выбрал любую из фраз, перешел на страницу фразы из поиска, перешел на страницу с http://www... Думал надо поставить редирект с www на без www. Поставил. Обновил, перезагрузил, не срабатывает. То ли время какое-то должно пройти, то ли так и должно быть.. я не понял..

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *