Как сделать 301 редирект

Если вы хотите изменить URL-адрес страницы, отображаемый в результатах поиска, рекомендуется использовать переадресацию 301 (301 Permanent Redirect), выполняемую сервером. Это самый лучший способ обеспечить переход пользователей и поисковых систем на нужную страницу.

Код статуса 301 означает, что запрашиваемая страница окончательно перемещена в новое местоположение.

На самом деле существует несколько редиректов. О том как сделать 301 редирект можно посмотреть на инфографике.

В каких случаях использовать редирект 301?

Использовать переадресацию 301 особенно удобно в следующих случаях:

  1. При смене домена. Вы переместили свой сайт в другой домен и хотите, чтобы казалось, будто перехода и вовсе не было.
  2. Для передачи новому домену Page Rank и тИЦ.
  3. Для сохранения поискового трафика.
  4. Пользователи могут получить доступ к сайту, используя несколько различных URL-адресов. Например, попасть на страницу можно несколькими способами: //site.ru/sub, //sub.site.ru или //www.site.ru. Бывает удобно выбрать один из этих URL-адресов в качестве канонического (основного) и использовать переадресацию 301 для перенаправления на него трафика с других URL. Для настройки основного домена можно использовать «Инструменты для веб-мастеров».
  5. При объединении двух сайтов требуется, чтобы все ссылки на устаревшие страницы указывали на страницы, действующие в данный момент.
  6. При переносе страницы сайта в новое место.
  7. Для склейки имени сайта с префиксом www и без него.
Статья по теме:  Что изменится, если убрать с сайта SEO-тексты

Пример использования 301 редиректа

Задача: удалить поддомен.

Как это сделать корректно? Ведь его страницы наверняка уже проиндексированы и есть обратные сслыки.

Самый простой способ — поставить редирект 301. Чтобы сделать переадресацию 301 для сайтов, размещенных на серверах Apache, необходимо внести изменения в файл сервера .htaccess. Для этого, нужно создать текстовый файл .htaccess и написать в нем такую строку:

Redirect 301 / //www.newsite.ru

где:
Redirect 301 — эта инструкция указывает, что сайт (страница) перемещен;
/ — означает, что всё с верхнего уровня сайта, включая все подкаталоги, будет переадресовано на новый домен.

 

Особенность:

  • исходный адрес указывается без http: и домена
  • файл .htaccess должен быть с точкой в начале
Redirect 301 /old-url/ //ohersite.ru/new-url/

Если вы хотите изменить URL-адрес страницы, отображаемый в результатах поиска, рекомендуется использовать переадресацию 301, выполняемую сервером. Это самый лучший способ обеспечить переход пользователей и поисковых систем на нужную страницу. Код статуса 301 означает, что запрашиваемая страница окончательно перемещена в новое местоположение.

После прописывания инструкции, старый сайт будет осуществлять перенаправление на новый и не будет индексироваться до тех пор, пока при обращении к нему робот Яндекса не будет получать ответ HTTP 200. При такой конфигурации будет индексироваться только цель перенаправления — новый сайт.

Google расценивает 301 редирект всех страниц на главную как 404 ошибки. По сути, Google игнорирует эти редиректы, и они не передают PageRank.

Об этом рассказал Джон Мюллер в ходе видеовстречи с вебмастерами:

https://www.youtube.com/watch?v=RVrYfoXH-BM

Чтобы установить переадресацию 301 для сайтов, размещенных на серверах Apache, необходимо внести изменения в файл сервера .htaccess. Дополнительные сведения можно найти в учебном пособии по файлам .htaccess для Apache и руководстве по изменению URL-адресов для Apache.

Статья по теме:  Яндекс заменяет тИЦ на ИКС — новый показатель качества сайта

301-ая ошибка (301 Permament Redirect), возвращаемая при обращении к определенному адресу страницы, означает, что сайт был на постоянной основе перенесен на новый адрес, также указанный в HTTP заголовке. Как пользователи, зашедшие через браузер, так и поисковые боты будут перенаправляться по новому адресу, при этом, для поисковиков все свойства старого адреса (страницы) будут переданы новому URL. При 301 редиректе произойдет склейка старого и нового адресов: параметры вроде PageRank и тИЦ, а также вес страницы и ссылочный вес старого адреса будет передан новому URL.

Редирект с номером ошибки 301 (moved permanently) это наилучший способ сохранить рейтинг сайта в поисковых системах при переносе его на новый домен или смене системы управления контентом. Переадресацию можно выполнить несколькими способами, в зависимости от установленного программного обеспечения.

301 редирект в .htaccess

При использовании сервера Apache, переадресацию можно просто выполнить с помощью файла .htaccess, однако, при этом, не забыть включить модули mod_alias (для поддержки директив Redirect, RedirectPermanent и RedirectMatch) и/или mod_rewrite (для использования реврайта) в php.ini.

Для этого поместите в корне папке вашего сайта файл .htaccess.

Редирект с помощью директивы Redirect или RedirectPermanent модуля mod_alias

Redirect 301 /old-page.html //new-domain.ru/new-page.html

или

Redirect permanent /old-page.html //new-domain.ru/new-page.html

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

RedirectPermanent /old-url.html //new-site.ru/new-url.html

Редирект с помощью директивы RedirectMatch

Этот редирект подобен предыдущему, за исключением того, что можно задавать регулярное выражение для старых URL адресов. Допустим, при смене движка с PHP на ASP, можно старые адреса перенаправить следующим образом:

RedirectMatch /(.*).php$ /$1.aspx

Редирект с помощью директивы RewriteRule модуля mod_rewrite

Для использования директивы RewriteRule необходимо удостовериться, что в httpd.conf подключен модуль mod_rewrite, а также влючена опция FollowSymLinks. Использование реврайт модуля дает много возможностей для перенаправления страниц на новые адреса.

Статья по теме:  Google отменил директиву rel=next и rel=prev для страниц пагинации

Перенаправление домена с www на не-www

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.*) [NC]
RewriteRule ^(.*)$ //%1/$1	[R=301,L]

или альтернативный, более понятный синтаксис

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ //domain.com/$1 [R=301,L]

Редирект запросов с не-www на домен с www префиксом

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ //www.domain.com/$1 [R=301,L]

или же альтернативный вариант

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.(.*) [NC]
RewriteRule ^(.*)$ //www.%1/$1 [R=301,L]

Как три домена средиректить на один через htaccess

RewriteCond %{HTTP_HOST} ^domain4.ru [OR]
RewriteCond %{HTTP_HOST} ^www.domain4.ru [OR]
RewriteCond %{HTTP_HOST} ^domain3.ru [OR]
RewriteCond %{HTTP_HOST} ^www.domain3.ru [OR]
RewriteCond %{HTTP_HOST} ^domain2.ru [OR]
RewriteCond %{HTTP_HOST} ^www.domain2.ru [OR]
RewriteCond %{HTTP_HOST} ^www.domain1.ru
RewriteRule ^(.*)$ //domain1.ru/$1

Есть специальный сервис, который поможет сгенерировать код для редиректа: //www.webconfs.com/htaccess-redirect-generator.php

Редирект с помощью скрипта (отправки заголовков)

Редирект запросов можно осуществлять также с помощью скриптов, отправляя клиенту необходимые заголовки.

HTTP/1.1 301 Moved Permanently
Location: //www.newdomain.ru/newdir/newpage.htm

PHP редирект

<?php
header(“<span class="caps">HTTP</span>/1.1 301 Moved Permanently”);
header(“Location: //www.newdomain.ru/newdir/newpage.htm”);
exit();
?&gt;

Использованы материалы Переадресация 301 (Центр веб-мастеров Google)

 


Понравилась статья? Поделиться с друзьями:
Комментарии: 218
  1. Mark Freeman

    Спасибо большое! Перерыл много сайтов и только на вашем нашел действительно действующий способ редиректа! :) Спасибо!

    1. atbliss.ru (автор)

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

  2. Андрей

    Добрый день.

    На самом деле отличная статья (а в гугловских доках написано не всё, предлагаемое ими видео вообще бесполезно). Мучался весь день и только в 2 ночи нашел её, все заработало.

    Кроме одного, может быть вы сталкивались с этим. Редирект через файл .htaccess не работает на страницах блога. На главной странице и других, созданных вручную, все работает.

    1. atbliss.ru (автор)

      Я не совсем понял, что именно не работает? Напишите, пожалуйста, подробнее.

      1. Андрей

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

        # BEGIN WordPress
        
        RewriteEngine On
        RewriteBase /blog/
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /blog/index.php [L]
        
        # END WordPress
        

        Так вот у меня получается, что страницы блога не редиректятся (если убрать код, то все норм). Как и ссылки на файлы.

        1. atbliss.ru (автор)

          Нужно в этом разбираться, так сразу ответить очень сложно.

  3. Gohar

    Добрый день, моя задача заключается в этом.

    На сайте доступны страницы по двум адресам — со слешем на конце и без него.

    Нужно привести все, которые со слешом к без слеша на конце.

    Буду очень благодарна если поможете мне. Какой из этих кодов можно использовать для решения данной проблемы? Спасибо.

    1. atbliss.ru (автор)

      Было

      RewriteRule ^catalogue/([-a-z]+)$ catalogue/$1/ [R]
      RewriteRule ^catalogue/([-a-z]+)/$ catalogue/index.php?ctg=$1
      

      Стало

      RewriteRule ^catalogue/([-a-z]+)/$ catalogue/$1 [R]
      RewriteRule ^catalogue/([-a-z]+)$ catalogue/index.php?ctg=$1
      
      1. gohar

        Спасибо за ответ, скажите, а вставить код нужно после RewriteEngine On.

        1. atbliss.ru (автор)

          Да. Комнада RewriteEngine on запускает модуль mod_rewrite.

  4. gohar

    Простите за мои глупые вопросы, я еще новичок в этом деле, хотела уточнить правильно ли я поставила код? потому что не сработал код ( после какого поля его нужно вставить? и подряд друг за другом вставить?

    1. atbliss.ru (автор)

      Этот код я привел как пример. У вас он работать не будет. Наверняка у вас структура сайта организована по-другому.

      Посмотрите как было в первой строке перед символом $ нет обратного слэша. Чтобы он добавлялся, после $1 в правиле указывается слэш.

      Если вы хотите, чтобы правило наооборот убирало слэш, если он есть, то сделать надо как показано на примере «Стало».

  5. gohar

    А если у меня в htaccess нет такого поля вообще?

    1. atbliss.ru (автор)

      Какого поля?

  6. gohar

    Ладно с этим попозже попробуем решить. У меня последнйи вопрос к вам, не могли бы вы помочь мне, необходимо, чтобы — При запросе ссылок вида http://www.domain.ru/index.php, http://www.domain.ru/home и т.п. сервер должен отдавать HTTP/1.1 301 Moved Permanently. При этом в поле Location должен быть прописан URL, содержащий основной хост ресурса, т.е. http://www.domain.ru/

    1. atbliss.ru (автор)

      Адрес http://www.domain.ru/index.php в принципе тоже самое что и http://www.domain.ru/. Если вы сотрете index.php, то ничего не изменится. Вам нужен редирект на корень сайта со страницы http://www.domain.ru/home?

  7. gohar

    Сайт написан в php, Нужно чтобы когда мы набираем http://www.domain.ru/index.php и http://www.domain.ru/home он автоматически перенаправил на http://www.domain.ru/ при этом сервер должен отдавать HTTP/1.1 301 Moved Permanently.

    1. atbliss.ru (автор)
      Redirect 301 /home /
  8. gohar

    а вторая задача нужно когда мы набираем адрес http://www.vipglamur.ru/pribori/ он автоматически перенаправляет на http://www.vipglamur.ru/pribori — без слеша на конце

    1. atbliss.ru (автор)

      Попробуйте так:

      RewriteEngine On
      RewriteRule ^pribori/$ pribori $1 [R]
      
  9. gohar

    нашла в интернете вот этот код, но он не срабатывает, не понимаю почему ((

    1. atbliss.ru (автор)

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

  10. gohar

    Простите за то что отняла у вас много времени. Все равно не получилось и так:

    RewriteEngine On
    RewriteRule ^pribori/$ pribori $1 [R]
    
  11. Александр

    Добрый день. Помогите решить задачу.
    У меня есть сайт А и сайт Б.
    Они абсолютно разные по структуре.
    Я хочу прикрыть сайт А, но так, чтобы когда пользователи попадали на него, они видели сообщение, что сайт переехал.
    И можно ли перенести тИЦ и PR с сайта А на сайт Б?
    Спасибо за ответ.

  12. atbliss.ru (автор)

    Чтобы сохранить параметры сайта (тИЦ, PR), нужно поставить 301 редирект. А как сделать так, чтобы пользователю сообщалось, что сайт переехал, ответить затрудняюсь.

  13. Марина

    А как сделать вот такой редирект, скажите пожалуйста?
    Чтобы со всех страниц размещенных по пути
    http://мой_сайт/catalog/все_страницы
    перенаправляло на
    http://мой_сайт/все_страницы

    Заранее благодарю за ответ.

    1. atbliss.ru (автор)

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

      RewriteRule ^([A-Za-z]+)/products/consumer/$ /$1/products/ [R]
      #RewriteRule ^([A-Za-z]+)/products/([A-Za-z0-9]+)/$ /$1/products/ [R]
      

      У вас аналогичная ситуация. Пользователей надо перенаправлять со страницы catalog на уровень выше. В вашем случае, надо убрать все лишнее и получится такая запись:

      RewriteRule ^/catalog/$ /$1/ [R]
      #RewriteRule ^/$ /$1/ [R]
      
    2. Владимир

      Подскажите, пожалуйста, а как сделать вот такой редирект:
      Чтобы все страницы, размещенные по пути
      http://мой_сайт/все_страницы,
      перенаправляло в новые разные каталоги, например,
      http://мой_сайт/catalog1/страница1.html
      http://мой_сайт/catalog1/страница2.html
      http://мой_сайт/catalog2/страница3.html
      http://мой_сайт/catalog3/страница4.html
      и т. д.
      Т. е. нужно распределить все страницы (сейчас их 75) по категориям
      Спасибо.

      1. atbliss.ru (автор)

        Нужно сначала решить можно ли сделать общее правило для всех страниц.

        Скорее всего нет. Для одной группы страниц нужно одно правило,Ю которое будет пренаправлять в один каталог, для других — другое правило.

        Вопрос еще в том, можно ли для одной группы страниц, которые должны перенаправляться в один и тот же каталог создать одно правило? То есть что-то, что их отличает и может использоваться в качестве маски для пакетной обратотки.

        1. Владимир

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

          А что означает «маска для пакетной обработки»?

          А, в принципе, можно ли сделать свой редирект для каждой страницы?
          Например: Redirect 301 /страница1.html http://мой_сайт/catalog1/страница1.html

          1. atbliss.ru (автор)

            Маска — это когда у многих страниц есть что-то общее и отличительная часть, которую можно задать в виде формулы (диапазона), например диапазон чисел и символов и т. д.

            Например, маска ^([A-Za-z]) учитывает все УРЛ, в которых встречаются символы от A до Z (как прописные, так и строчные).

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

            Покажите несколько УРЛ которые надо перенаправить и на какие адреса.

  14. Павел

    Пожскажите, как сделать редирект, если изменился адрес некоторых страниц сайта с http://mysite.com/articles.php?id=10 на http://mysite.com/articles.php?id=12 и т.д.

    Страниц около 150, поэтому хочу прописать вручную для каждой страницы.
    Вот так правильно?

    Redirect 301 /articles.php?id=10 articles.php?id=12
    Redirect 301 /articles.php?id=11 articles.php?id=114

    Можно-ли это сделать через панель инструментов google?

    1. atbliss.ru (автор)

      Правильный редирект будет выглядеть вот так:
      Redirect 301 /articles.php?id=10 http://mysite.com/articles.php?id=12

      Через панель Веб-мастеров Гугл делать переадресацию не пробовал, всегда создавал файл .htaccess

      1. Павел

        Спасибо, Илья! Я так понял, что еще нужно включить модуль mod_alias. Но на своем хостинге в файле php.ini я не нашел строки, где можно его включить. Как быть?

        1. atbliss.ru (автор)

          У меня в Денвере и у моего хостера — mod_alias включен по-умолчанию.

          А что у вас редирект не работает?

  15. Павел

    Илья, в службе поддержки мне сказали, что редирект можно сделать и через .htaccess и через Cpanel. В общем я залил на хостинг обновленный сайт вместе со списком редиректов в файле .htaccess. Но если я, например, нахожу в Интернете статью на своем сайте, кликаю по ней, то открывается другая статья, т.к. адреса страниц были мной изменены. Значит редирект не работает или нужно время?

    1. atbliss.ru (автор)

      Что-то не совсем понял.
      > кликаю по ней, то открывается другая статья, т.к. адреса страниц были мной изменены.
      Открывается не та статья на которую вы перенаправляли со старой статьи?

      Чтобы редирект заработал, не нужно ждать. Как только прописано правило, оно тут же начинает действовать. На счет кэша — не помню чтобы он был помехой. Как только я добавлял редирект, тут же видел результат.

  16. Максим

    Доброе утро! У меня следующая ситуация :
    Домен переехал на другой хостинг, но в поисковиках остались старые ссылки.
    Подскажите с помощью какой команды можно перенаправить старые внутренние ссылки на новые(или нужно каждую ссылку перенаправлять отдельно?)

    Файл .htaccess у меня на сервере выглядит вот так
    # 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

    # 2. In your opencart directory rename htaccess.txt to .htaccess

    # For any support issues please visit: http://www.opencart.com

    Options +FollowSymlinks

    # Prevent Directoy listing
    Options -Indexes

    # Prevent Direct Access to files

    Order deny,allow
    Deny from all

    # SEO URL Settings
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

    ### Additional Settings that may need to be enabled for some servers
    ### Uncomment the commands by removing the # sign in front of it.
    ### If you get an «Internal Server Error 500» after enabling, then restore the # as this means your host doesn’t allow that.

    # 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
    # php_flag register_globals off

    # 2. If your cart has magic quotes enabled, This may work to disable it:
    # php_flag magic_quotes_gpc Off

  17. Alex

    Если вас не затруднит помогите и мне, нужно переадресовать с одной страницы на другую. Так как вы указали не выходит

    Redirect 301 /articles.php?id=10 http://mysite.com/articles.php?id=12

    Не получается все ровно открывается адрес http://mysite.com/articles.php?id=10

    Выше прописано условие для переадресации с www и работает без проблем

    И вот такое условие работает

    Redirect 301 /article.php http://www.site.ru/article.php?id=12

    А нужно чтоб заработало
    Redirect 301 /my_article.php?id=10 http://www.site.ru/my_article.php?id=11
    Или
    Redirect 301 /my _article.php?id=10 http://www.site.ru/map

    Спасибо

  18. Валодя

    Добрый день. У меня возникла проблема. Есть сайт на голом html структуру имеет site.ru/category/post1 и тд (post2, post3, так же есть разные категори — category1 и тд) сообразил как убрать index.html из адреса site.ru/index.html а вот в остальных папках непойму — файл нужно ложить в каждую папку или можно напистаь в корне и работать будет везде? если только в корне — то что прописать нужно?

    1. atbliss.ru (автор)

      Совершенно верно, файл нужно ложить в каждую папку.

      Если хотите, чтобы УРЛ выглядел эстетично. То нужно чтобы каждый файл назывался index.htm и лежал в соответствующей паке.

      Например, к индексному фалу путь такой: site.ru/category/post1/index.htm, а ссылка на эту страницу должна быть такой: site.ru/category/post1/.

  19. Виктор Ивановский

    Здравствуйте. Прошу помочь. 2 суток ищу информацию, безуспешно.
    Имеем: виртуальный хостинг с двумя домнами-заркалами одного сайта.
    Задача: сделать так, чтобы при заходе на мой сайт http://www.2001photo.COM или 2001photo.COM пользователь попадал на англоязычную страницу english.php
    При заходе на сайт-зеркало http://www.2001photo.RU или 2001photo.RU попадал на русскую страницу russian.php.
    Я использовал следующий код:
    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.2001photo.com
    RewriteRule (.*) http://2001photo.com/english.php$1 [R=301,L]

    Больше ничего не получается. При попытке добавить другой переход или переход с http://www.2001photo.com на http://www.2001photo.com/english.php всё перестает работать… Зацикливается english.php в адресе или происходит зацикливание между редиректами.

  20. Mikhail.Petrov

    Добрый день, у меня такой вопрос необходимо сделать редирект 301
    В данный момент у меня на сайте все новости доступны по 3 ссылкам:
    1) Без слеша (/) Пример: http://onesee.ru/films/comedy-online
    2) Со слешем (/) Пример http://onesee.ru/films/comedy-online/ (получило сделать редирект скриптом ниже)
    3) .html Пример http://onesee.ru/films/comedy-online.html (необходимо чтобы все редиректились на .html)
    необходимо сделать чтобы был редирект со всех ссылок без слеша и со слешем на .html

    Редирект с сылок сослешем у меня получилось сделать вот так
    RewriteEngine On
    RewriteBase /
    RewriteRule ^(.*)/$ $1\.html [R=301,L]
    Как сделать редирект со страниц без слеша?

  21. Владимир

    После установки магазина, на него можно зайти только таким способом: mysite.org/catalog/, но хочу, чтобы можно было заходить, набрав просто mysite.org, поможет ли мне в этом переадресация? Мой файл .htaccess выглядит так:

    # $Id$
    #
    # This is used with Apache WebServers
    #
    # For this to work, you must include the parameter ‘Options’ to
    # the AllowOverride configuration
    #
    # Example:
    #
    #
    # AllowOverride Options
    #
    #
    # ‘All’ with also work. (This configuration is in the
    # apache/conf/httpd.conf file)

    # The following makes adjustments to the SSL protocol for Internet
    # Explorer browsers

    #
    #
    # SetEnvIf User-Agent «.*MSIE.*» \
    # nokeepalive ssl-unclean-shutdown \
    # downgrade-1.0 force-response-1.0
    #
    #

    # If Search Engine Friendly URLs do not work, try enabling the
    # following Apache configuration parameter

    # AcceptPathInfo On

    # Fix certain PHP values
    # (commented out by default to prevent errors occuring on certain
    # servers)

    # php_value session.use_trans_sid 0
    # php_value register_globals 1

    Помогите, уже замучался с этим вопросом.

  22. Чайник

    Доброго времени суток!
    Отличная статья. Есть вопрос по маске или правилу:

    ссылки на товары в магазине выглядят так
    site.ru/categoria/tovar
    один из модулей, выводящих популярные товары добавляет к адресу ?Itemid=101
    то есть ссылки из модуля выглядят так
    site.ru/categoria/tovar?Itemid=101

    Можно ли создать правило, перенаправляющее ссылки с ?Itemid=101 на такие же, только без этих символов?

  23. Сергей

    Здравствуйте!
    Собрался переделать динамические адреса вида «view_post.php?id=$1» на своем сайте в статический вид — «post/1/». Само преобразование сделал следующим образом:
    RewriteRule ^post/([0-9]+)/\.?$ view_post.php?id=$1
    После этого страница стала открываться по обоим адресам. Теперь надо сделать 301 редирект, также массово (т.е. номер параметра может быть любой и надо, чтобы правило работало для всех подобных страниц), но ничего не выходит. Помогите, пожалуйста разобраться с этой проблемой. А то весь Инет перерыл, так и не разобрался…

  24. Сергей

    Опечатался, передавать надо динамические адреса «view_post.php?id=1»

  25. Сергей

    Добрый вечер…
    Решил свою задачу с помощью старого доброго PHP. Пришлось для этой цели написать маленький скрипт, который выполняет 301 редирект на новый статический вариант страницы вида «post1/1», только в том случае, если страница была открыта по своему старому адресу вида «view_post.php?id=1»

    Через htaccess так и не смог сделать такой сложный редирект, чтобы корректно передать из старой ссылки в новую только параметр (зато о многих других полезных фишках узнал и буду их применять)… Спасибо за статью.

    1. atbliss.ru (автор)

      Сергей, вы молодец, что сами справились с этой задачей. Если хоите, можете поделиться кодом. Может это еще кому нибудь окажется полезным.

  26. nahi

    ДОбрый день!

    Можно ли сделать редирект
    с адрес/картинка.жпг/

    на

    адрес/картинка.жпг

    то есть на картинку без слэша то есть

    СПасибо

  27. Доска объявлений

    А как сделать редирект с index.php на корень сайта? нужно избавить ся от дублей.

  28. Artaaroth

    Возникла проблема. Вписал в .htaccess

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

    В итоге получаю ошибку 310.

  29. atbliss.ru (автор)

    Ошибка 310 — это возникает когда слишеом много редиректов. Наверное это бесконечный цикл.

    Но вы как-то по-своему написали код. Сравните:

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]
    RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
    
  30. maxeg

    Доброго времени суток!
    подскажите пожалуйста, можно ли сделать шаблон для редиректа, если URL изменились следующим образом:
    старый URL — http://site.ru/games.php?game=193
    Новый URL — http://site.ru/games.php?game=5193
    т.е. id для всех страниц было увеличено на определенное (заранее известное) число

  31. gransh

    Добрый день,
    Помогите плиз написать редирект с адресов типа
    /index.php?ukey=product&productID=10631
    на адреса типа
    /index.php?productID=10631
    старые ссылки нужно заменить новые
    ID много разных

  32. Вадим

    Здравствуйте!
    Можете подсказать правило для редиректа адреса site.ru/home.html на site.ru.
    Сколько искал, нигде не мог найти!
    Буду очень благодарен!

    1. atbliss.ru (автор)

      Обычный редирект: Redirect 301 http://site.ru/home.html http://site.ru

  33. Вадим

    Спасибо, я уже сделал!:-)

  34. Сергей

    Здравствуйте Илья. Я тут почитал комментарии, но похожего моему случаю по-моему тут нет.

    Я установил поддомен. И мне надо сделать перенаправление с основного сайта только с одной категории на поддомен этого же сайта на главную. Т.е. вот так: http://мой сайт/категория на http://поддомен.мой сайт. Можно ли это в .htaccess сделать?

    И чтобы при постинге в эту категорию (http://мой сайт/категория) новости автоматом публиковались сразу на поддомене на главной.

    1. atbliss.ru (автор)

      Перенаправление с категории основного сайта на поддобен выглядит вот так:

      Redirect 301 http://мой-сайт/категория http://поддомен.мой сайт

      А чтобы новости автоматом публиковались сразу на поддомене на главной это уже вопросы по админке. Но тут скорее всего придётся ставить отдельную админку со своей базой данных на новый поддомен, чтобы не редиректить и новые записи, а работать а нормальном режиме.

      1. Сергей

        На поддомене есть отдельная админка и база у сайта на поддомене своя. Дело в том, что я скрыл из меню эту категорию «» (вы наверно поняли почему) и она имеет сейчас вот такой вид: http://поддомен.мой (на основном домене).

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

        И как сделать чтобы новости при обращении к основному сайту к категории «» публиковались уже на поддомене на главной? И нужно ли ставить такой редирект в htacces на основном домене: «http://мой-сайт/ID299 http://поддомен.мой«?

        1. atbliss.ru (автор)

          Честно говоря не совсем понял для чего всё это нужно.

          1. Сергей

            Для чего всё это нужно: 1) вы знаете отношение некоторых серьёзных партнёрских программ и поисковых систем к ***. 2) мне нужно, чтобы при публикациях в категорию с *** эти публикации автоматом переносились на главную на поддомен, т.к. поддомен специально был создан для ***-контента (при том, что многие журналисты ещё льют свои новости на сайт не вручную, а с помощью таких программ как Addnews и др.). Вообщем мне нужно узнать: нужен ли редирект с основного домена с ***-категории на поддомен с ***-категориями, как это реализовать и как сделать чтобы при публикации ***-контента он автоматом публиковался на главной на поддомене?

            1. atbliss.ru (автор)

              Простите, но я также не имею ничего общего с подобной тематикой.

  35. pavas

    Здравствуйте!
    Как лучше сделать редирект, если на старом хостинге нет доступа к .htaccess, php там тоже не поддерживается? Сайт переехал с site.spb.ru на site.ru.
    Заранее благодарен.

    1. atbliss.ru (автор)

      Чтобы сохранить показатели тИЦ. PR редирект 301 просто необходим. Ну а как так произошло, что нет доступа к .htaccess? У вас нет досупа к хостингу?

  36. Александр

    А нужно ли во второй строчке перед «-» ставить «\» ? Или это не обязательно?

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^new\-site\.ru [NC]
    RewriteRule ^(.*)$ http://www.new-site.ru/$1 [L,R=301]
    
  37. Юлия

    Добрый день! В индекс поисковых систем попали страницы вида http://www.site.ru//index.php?q=page.html. Необходимо их удалить или заменить на следующие http://www.site.ru/page.html.

    У меня еще в .htaccess есть одна запись, которая очень меня смущает. Может в ней загвоздка?

    # For Friendly URLs
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    

    Спасибо за помощь.

    1. atbliss.ru (автор)

      В 4 строке действительно странная вещь написана. Зачем она нужна?

      У меня в .htaccess такого нет и таких проблем тоже :)

      # BEGIN WordPress
      
      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
      
      # END WordPress
      
      1. Юлия

        Так как же всё-таки удалить из индекса страницы вида http://www.site.ru/index.php?q=page.html

        Если удаляю 4 строку сайт не работает. Или достаточно изменить ее на RewriteRule . /index.php [L] ?

        Но как сделать, чтобы динамических страниц вообще не было.
        Огромное спасибо за помощь.

        1. atbliss.ru (автор)

          Чтобы удалить из индекса ненужные страницы, начинающиеся с параметра ?q=, добавьте в robots.txt строку:

          Disallow: /?q=

        2. atbliss.ru (автор)

          Попробуйте 4 строку изменить на
          RewriteRule . /index.php [L] ?

          1. Юлия

            Спасибо. Изменения внесла. Сайт не развалился). Время покажет, как себя повели данные команды.

            1. atbliss.ru (автор)

              Рекомендую проверить доступность страниц с помощью инструмента Анализ robots.txt http://webmaster.yandex.ua/robots.xml.

              Если всё сделано правильно, то со временем, ненужные страницы должны полностью исчезнуть из индекса.

              Если нужно ускорить этот процесс, а количество не очень велико, то можно удалить их ручками.

              1. Юлия

                К сожалению, сайт развалился — работает только главная страница, а на других страницах адреса изменяются, а внешность — главной страницы. Пришлось возвращать строку RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] назад. А как удалять такие страницы вручную? Физических адресов ведь нет. Адреса имеют нормальный вид http://www.site.ru/page.html, но в индекс вместо них выходят адреса с index.php?q=

  38. Soao

    Это всё хорошо, но кто знает, как сделать, чтобы при редиректе id (номер) страницы оставался прежним а вся остальная часть кода менялась, и так с каждым id-шником, с каждым элементом, можно ли так сделать?

    1. atbliss.ru (автор)

      Конечно можно. Нужно использовать регулярное выражение.

      1. Soao

        А реально ли это объяснить человеку, который слабо заком с программированием, точней совсем не знаком, на примере или как-нибудь, чтобы хоть какая-то ясность настала? Если не затруднит…спасибо.

        1. atbliss.ru (автор)

          Я попробую, но только не сейчас. К сожалению, сейчас очень сильно занят.

          1. Soao

            На самом деле, задача состояла вот в чем:
            редирект со страниц http://test.loc/perv/index.php?SECTION_ID=25 на страницы http://test.loc/vtor/25/
            и решается так:
            RewriteEngine On
            RewriteCond %{QUERY_STRING} ^SECTION_ID=([0-9]+)$ [NC]
            RewriteRule ^perv/index\.php$ /vtor/%1/? [R=301,L]
            Но все равно спасибо за поддержку.

            1. atbliss.ru (автор)

              Спасибо, Soao. Вы проверили, редирект работает?

  39. Soao

    Да, проверила, работает.

  40. Михаил

    Здравствуйте.
    Есть проблемка — поисковики по запросам направляют посетителей вместо страницы с нужной им темой на вспомогательные страницы этой же темы (куда пользователь сам мог бы принять решение зайти со страницы темы).
    Можно как-то прописать в .htaccess такой редирект, при котором посетитель по выдаче попадал бы на страницу темы, а если пользователь потом с этой страницы по ссылке сам захотел бы перейти на ту вспомогательную страницу, с которой его перенаправили, он-таки попадал бы на неё и редирект по ссылке на странице сайта уже не работал бы и не возникало бы циклических переходов?
    Сайт — html-страницы.

    1. atbliss.ru (автор)

      Если поисковики отправляют посетителей на другую страницу (не ту которую вам бы хотелось), то значит они её считают наиболее релевантной. Проанализируйте, посмотрите, почему они её выбирают. Адаптируте целевую страницу, чтобы она была лучшим ответом и поисковики это заметят.

      А возможности делать селиктивный редирект со страницы на которую пришешли из поиска — нет. Или всех релиректить или никого.

      1. Михаил

        Самый правильный ответ. Респект.
        К сожалению, в моём случае не катит. Владелец сайта упорно не желает «ложиться» под поисковики.
        Если селективный редирект невозможен, какой может быть выход? Попандер с предложением выбора страниц для дальнейшего просмотра?
        Есть здесь где про попандеры прочитать?)

        1. atbliss.ru (автор)

          Зачем так сложно? Не лучше ли отредатировать текст? Написать что подробнее почитать можно на странице такой-то и дать ссылку.

          Отформатировать соответсвующим образом, чтобы эта информация считывалась в первую очередь.

          В общем это надо на самом примере видеть что там да как, чтобы можно было более конкретно говорить.

          1. Михаил

            Посещение ~ 0 сек. Народ сразу видит, что не туда попал.

            1. atbliss.ru (автор)

              Это плохо. Показатель отказов 100%. Поисковики будут занижать эту страницу в выдаче.

              1. Михаил

                Пусть бы занижали, может, основная поднялась бы, так ведь не занижают)(

                1. atbliss.ru (автор)

                  Может проставьте с других страниц своего сайта ссылки на нужную страницу, чтобы передать ей больше веса.

                  1. Михаил

                    Понадобятся сотни ссылок. Поэтому хочу решить вопрос административно:»Ты туда не ходи»…

                    1. atbliss.ru (автор)

                      Тогда только односторонний редирект.

  41. Валерий

    Здравствуйте, подскажите, один момент, связанный с редиректом.
    На старом сайте (интернет-магазин) поставили 301 редирект в .htaccess на новый сайт.
    Насколько важно физическое сохранение контента всего старого сайта на сервере,
    Или оно уже роли не играет, можно оставить один файл .htaccess и все?

    1. atbliss.ru (автор)

      Старый контент уже будет находиться на новом сайте. А на старом достаточно одного файла в .htaccess с 301 редиректом. Он будет являться указателем нового адреса.

      1. Валерий

        Спасибо за ответ

        1. atbliss.ru (автор)

          Пожалуйста :)

  42. Kosmodrom

    U menya na FTP net fayla .htaccess, a kak delat 301 redirekt skriptami- ne znayu. Ne podskazhete? Sayt v profile.

  43. Владимир

    Подскажите пожалуйста как сделать 301 редирект.
    Нужно чтобы со страниц вида http://мой_сайт/страница1.html?start=300 перекидывало на http://мой_сайт/страница1, а с http://мой_сайт/страница5.html?start=7000 на http://мой_сайт/страница5

  44. Malek

    Не могу понять. Как Правильно сделать Редирект для ссылок, для скачивания с депозитфайлс, при клике на ссылку человек не сразу попадает на депозит, а на специально созданную страницу, а уже после определенного промежутка времени посетитель перебрасывается на сам депозит.

    1. atbliss.ru (автор)

      Значит ему нужно давать ссылку на специальную страницу, которая автоматически перенаправит его на депозит.

  45. Сергей

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

    После аудита сайта мне прислали вот что:

    На вашем сайте имеется несколько доступных для индексирования служебных странниц. Например: http://fresh-portal.net/index.html. Наличие подобных страниц может усложнить правильную индексацию вашего сайта. Кроме того, на данные странницы ссылаются сторонние сайты, что приводит к неправильному распределению веса со стороны поисковых систем. Необходимо со всех служебных странниц и странниц копий установить 301 редирект на основные странницы.

    Как это сделать подскажите пожалуйста.
    Скажу сразу что служебную страницу я с хостинга удалил.
    Но сайт все равно открывается по адресу fresh-portal.net/index.html

    1. atbliss.ru (автор)

      Попробуйте Что касается главной страницы, редирект прописывается таким образом:

      Redirect 301 http://fresh-portal.net/index.html http://fresh-portal.net/

      или даже проще:

      Redirect 301/index.html /

  46. Владимир

    Сайт забанил Гугл. Я все сделал, направил на проверку, но время идет…
    Сделал зеркало и переадресацию на него (с zazimye.com на zazimye.bcv.name)
    На Эксплорер нормально, на Мозиле и Хроме — не переадресует.
    Не могу понять, в чем дело, что еще надо сделать?

  47. Дмитрий

    Добрый день! Подскажите пожалуйста, возникла проблемка: есть два сайта, на одном сайте ссылки вида «www.site.ru/product/наименование товара» и тд, на втором сайте «www.site2.ru/выбранный каталог/наименование товара», доменные имена разные у сайтов, первый сайт в индексе давно, и крутится в сеопульте, второй сайт совсем новый, первый сайт работает временно, затем надо его будет закрыть вобще, так что необходимо запустить второй сайт окончательно. Как безболезненно все сделать? Можно ли просто поставить редирект с первого на второй и все? Или необходимо прописывать пути для товаров?

  48. Denis

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

    не найти мне код 301 редиректа для ситуации,
    если у сайта сменилось название директории (каталога).

    пример:

    было:
    сайт.ру/ньюс/статья1
    сайт.ру/ньюс/статья2
    сайт.ру/ньюс/статья3
    стало:
    сайт.ру/новости/статья1
    сайт.ру/новости/статья2
    сайт.ру/новости/статья3

    т.е. часть статей, которые были в старой структуре и хорошо видные в поиске стали выдавать 404 ошибку.

    хочу исправить ситуацию с помощью 301 редиректа.

    просьба подсказать код, пригодный при смене части url

  49. Объявления Красноярск

    Использовал 301 редирект, но почему-то сайту перешел не весь ТИЦ:(

  50. Настя

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

    Подскажите пожалуйста, если у меня сайт переносится на новую админку а адреса не возможно сохранить старые, как настроить 301 редирект?

    Спасибо!

    1. atbliss.ru (автор)

      Нужно сделать редирект с каждой страницы. Если возможно, то написать регулярное выражение. Иначе — придется прописывать каждый УРЛ.

  51. Алексей

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

    1. atbliss.ru (автор)

      Совсем не нужно удлать файл .htaccess. Достаточно убрать строку, осуществялющую редирект 301. А на том сайте, на который шло перенаправление, разместите редирект на прежний сайт.

      1. Алексей

        В файле .htaccess сайта с которого шло перенаправление осталось только вот что
        Options +FollowSymLinks
        RewriteEngine On
        все строки в которых указывался сайт на который шло пренаправление я удалил.
        подскажите пожалуйста как правильно прописать редирект в файле .htaccess сайта
        на который шло пренаправление там сейчас вот что
        php_value session.use_trans_sid off

        AddDefaultCharset windows-1251

        ErrorDocument 404 /error.html
        Options -Indexes FollowSymLinks
        AddOutputFilterByType DEFLATE text/html
        AddOutputFilterByType DEFLATE text/xml
        AddOutputFilterByType DEFLATE image/x-icon
        AddOutputFilterByType DEFLATE text/css
        AddOutputFilterByType DEFLATE application/x-javascript
        BrowserMatch ^Mozilla/4 gzip-only-text/html
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        BrowserMatch Konqueror no-gzip
        BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
        Header append Vary User-Agent

        Header append Cache-Control private

        ExpiresActive On
        ExpiresDefault «access plus 1 month»

        ExpiresActive Off

        FileETag MTime Size
        RewriteEngine on
        RewriteBase /
        RewriteCond %{HTTP_HOST} ^my-site.ru$ [NC]
        RewriteRule (.*) http://www.my-site.ru/$1 [L,R=301]
        RewriteRule ^list/diski/Replica/([a-zA-Z]+)(\+)([0-9]+).html$ /list/diski/Replica/$1$3.html [L,R=301]
        RewriteRule ^models/diski/OZ/4.html$ /models/diski/all/1.html [L,R=301]
        RewriteRule ^models/diski/OZ\sRacing/1.html$ /models/diski/OZ+Racing/1.html [L,R=301]
        #RewriteRule ^models\/diski\/(.+)\/(.+).html\?gclid=(.+)$ /models/diski/$1/$2.html [L,R=301]
        RewriteCond %{QUERY_STRING} ^.+$
        RewriteCond %{REQUEST_URI} ^/$
        RewriteRule ^(.*)$ http://www.my-site.ru/? [R=301,L]
        RewriteCond %{REQUEST_URI} ^/index.html$
        RewriteRule ^(.*)$ http://www.my-site.ru/? [R=301,L]

        RewriteRule ^listshina_vibor/shini/([0-9]+)/([-a-zA-Z0-9]+)/(.+)/([0-9]+)/([0-9]+)/([a-zA-Z0-9]+)/([0-9]+)/$ /listshina_vibor/shini/$1/$2/$3/$4/$5/$6/all_name/$7/ [L,R=301]
        RewriteRule ^listshina_vibor\/diski\/([-a-zA-Z0-9]+)\/(.+)\/([0-9]+)\/([0-9]+)\/([,0-9]+)\/([-,no0-9]+)\/([-,no0-9]+)\/([1-9]+)\/$ /listshina_vibor/diski/$1/$2/$3/$4/$5/$6/$7/all_name/$8/ [L,R=301]

        RewriteRule ^listshina_vibor/shini/([0-9]+)/([-a-zA-Z0-9]+)/(.+)/([0-9]+)/([0-9]+)/([a-zA-Z0-9]+)/(price|all_name|price\+desc|all_name\+desc)/([0-9]+)/$ /listshina_vibor/shini/?ftip=$1&fseason=$2&ffirm=$3&fprofil=$4/$5&fradius=$6&sort=$7&page_list=$8&B1=1 [L]
        RewriteRule ^listshina_vibor/diski/([-a-zA-Z0-9]+)/(.+)/([0-9]+)/([0-9]+)/([,0-9]+)/([-,a-zA-Z0-9]+)/([-,a-zA-Z0-9]+)/(price|all_name|price\+desc|all_name\+desc)/([0-9]+)/$ /listshina_vibor/diski/?tab10_id=$1&tab3_id=$2&tab6_id=$3&tab7_id=$4&tab8_id=$5&vot=$6&vdo=$7&sort=$8&page_list=$9&B1=2 [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php [L,QSA]

        1. Алексей

          Подскажите пожалуйста!никак не могу разобраться!спасибо!

  52. Алексей

    В файле .htaccess сайта с которого шло перенаправление осталось только вот что
    Options +FollowSymLinks
    RewriteEngine On
    все строки в которых указывался сайт на который шло пренаправление я удалил.
    подскажите пожалуйста как правильно прописать редирект в файле .htaccess сайта
    на который шло пренаправление там сейчас вот что
    php_value session.use_trans_sid off

    AddDefaultCharset windows-1251

    ErrorDocument 404 /error.html
    Options -Indexes FollowSymLinks
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE image/x-icon
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/x-javascript
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch Konqueror no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    Header append Vary User-Agent

    Header append Cache-Control private

    ExpiresActive On
    ExpiresDefault «access plus 1 month»

    ExpiresActive Off

    FileETag MTime Size
    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^my-site.ru$ [NC]
    RewriteRule (.*) http://www.my-site.ru/$1 [L,R=301]
    RewriteRule ^list/diski/Replica/([a-zA-Z]+)(\+)([0-9]+).html$ /list/diski/Replica/$1$3.html [L,R=301]
    RewriteRule ^models/diski/OZ/4.html$ /models/diski/all/1.html [L,R=301]
    RewriteRule ^models/diski/OZ\sRacing/1.html$ /models/diski/OZ+Racing/1.html [L,R=301]
    #RewriteRule ^models\/diski\/(.+)\/(.+).html\?gclid=(.+)$ /models/diski/$1/$2.html [L,R=301]
    RewriteCond %{QUERY_STRING} ^.+$
    RewriteCond %{REQUEST_URI} ^/$
    RewriteRule ^(.*)$ http://www.my-site.ru/? [R=301,L]
    RewriteCond %{REQUEST_URI} ^/index.html$
    RewriteRule ^(.*)$ http://www.my-site.ru/? [R=301,L]

    RewriteRule ^listshina_vibor/shini/([0-9]+)/([-a-zA-Z0-9]+)/(.+)/([0-9]+)/([0-9]+)/([a-zA-Z0-9]+)/([0-9]+)/$ /listshina_vibor/shini/$1/$2/$3/$4/$5/$6/all_name/$7/ [L,R=301]
    RewriteRule ^listshina_vibor\/diski\/([-a-zA-Z0-9]+)\/(.+)\/([0-9]+)\/([0-9]+)\/([,0-9]+)\/([-,no0-9]+)\/([-,no0-9]+)\/([1-9]+)\/$ /listshina_vibor/diski/$1/$2/$3/$4/$5/$6/$7/all_name/$8/ [L,R=301]

    RewriteRule ^listshina_vibor/shini/([0-9]+)/([-a-zA-Z0-9]+)/(.+)/([0-9]+)/([0-9]+)/([a-zA-Z0-9]+)/(price|all_name|price\+desc|all_name\+desc)/([0-9]+)/$ /listshina_vibor/shini/?ftip=$1&fseason=$2&ffirm=$3&fprofil=$4/$5&fradius=$6&sort=$7&page_list=$8&B1=1 [L]
    RewriteRule ^listshina_vibor/diski/([-a-zA-Z0-9]+)/(.+)/([0-9]+)/([0-9]+)/([,0-9]+)/([-,a-zA-Z0-9]+)/([-,a-zA-Z0-9]+)/(price|all_name|price\+desc|all_name\+desc)/([0-9]+)/$ /listshina_vibor/diski/?tab10_id=$1&tab3_id=$2&tab6_id=$3&tab7_id=$4&tab8_id=$5&vot=$6&vdo=$7&sort=$8&page_list=$9&B1=2 [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [L,QSA]

  53. Алексей

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

    1. atbliss.ru (автор)

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

      1. Алексей

        Понятно! извините!

  54. Клара

    День добрый, у меня заковыристый вопрос к Вам, пожалуйста: есть сейчас сайты №1, №2 и №3, которые решено слить в один общий сайт №4, эти сайты №1, №2 и №3 уже жили своей жизнью, имеют примерно по несколько сотен уникальных товаров каждый и имеют в большей или меньшей степени наработки, и свои PR, сайт №4 (URL) существовал только в виде странички, изначально предполагалось сделать редирект 301 — а теперь встал вопрос, а как это выглядит технически? что редиректовать? каждый товар? (тут медленно покрываюсь холодным потом)? или есть какая то нормальная схема, умнее? Подскажи правильную дорогу, пожалуйста

  55. Bigmovi

    Привет!Ты мне как то помог с 301 редиректом,а подскажи как сдерать редирект в мета тге на другой сайт с задержкой в 3сек

  56. Сергей

    Здраствуйте помогите пожалуйста сделать редирект 301 с http://doba.rv.ua/index.php на http://doba.rv.ua
    зарание благодарен.

    1. atbliss.ru (автор)
      1. Сергей

        я гдето нашол такой код

         
        RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.php\ HTTP/
        RewriteRule ^(.*)index\.php$ /$1 [R=301,L]
        
        он подходит??
        а то я его уже прописал(
        1. atbliss.ru (автор)

          А зачем так много букав?

          1. Сергей

            незнаю, гдето на форумах нашол, и уже пожалел, через него немог зайти в админку(( пока неудалил((

            1. Сергей

              Сделал как вы написали, добавил этот

              Redirect 301 http://doba.rv.ua/index.php http://doba.rv.ua

              в .htaccess но ничего не изменилось ((

              1. atbliss.ru (автор)

                Да, действительно, не работает. Видимо сервер считает это практически одно и той же страницей.

              2. atbliss.ru (автор)

                Ага, я уже проверил. Если я указываю на другу страницу сайта, то редиректится нормально. А если пишу с указанием адреса домена, то действительно, ничего не происходит.

                Redirect 301 http://atbliss.ru/en/index.php http://atbliss.ru/en/

                Но если написать без домена, то получится циклическая переадресация.

                Redirect 301 /en/index.php /en/
            2. atbliss.ru (автор)

              Ну так нельзя, конечно, надо понимать, что код будет исполнять.

              1. Сергей

                я немного не понял, так что мне прописывать

                Redirect 301 /en/index.php /en/
                ???

                1. atbliss.ru (автор)

                  Нет, это я приводил пример для своего сайта. В результате эксперимента выявлено, что то что вы хотите сделать, 301 редиректом не делается. Если на вашем сайте нигде нет ссылок с указанием страницы, то все и так ОК.

                  1. Сергей

                    это означает что мне не нужно делать 301 редирект?

                    1. atbliss.ru (автор)

                      Нужен не редирект, а Rewrite, который тоже прописывается в файле .htaccess и преобразует адрес УРЛ.

  57. Сергей

    Так что мне нужно прописать чтоб на http://doba.rv.ua не дублировалась страничка http://doba.rv.ua/index.php

    1. atbliss.ru (автор)

      Надо писать регуряное выражение или правило для преобразования УРЛ. Я не помню — это надо пробовать.

  58. Сергей

    Жду ответа от вас, сейчас зашел и вижу что моего вопроса нет.
    Зачем его удалили?

    1. atbliss.ru (автор)

      Сергей, вы о чем спрашиваете? Какой вопрос был задан?

      1. Сергей

        Вы наверняка видели вопрос, вы же его как то удалил?
        Праблему решил, спасибо.

        1. atbliss.ru (автор)

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

          1. Сергей

            Сергей с другим значком, это не мои последние два ответа

  59. Сергей

    Так как мне сделать? У меня для главной страницы сайта существует страница-копия по адресу http://doba.rv.ua/index.php. Необходимо установить для нее 301 редирект на главную.
    Подскажите пожалуйста!

    1. atbliss.ru (автор)

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

      1. Сергей

        Жаль, Удачи с проектом, у меня скоро тоже будеть куча роботы, с новым проектом

        1. atbliss.ru (автор)

          Спасибо. И вам — удачи!

  60. vlad

    подскажите пожалуйста после того как сделал склейку www и без не могу зайти в админку пишет 404?

    1. atbliss.ru (автор)

      А что вы написали в robots.txt?

      1. vlad

        вы спросили robots.txt? а причем он к .htaccess?

        1. atbliss.ru (автор)

          Вы написали что сделали склейку. Склейку доменов можно делать через дерективу host и редиректом 301. Директива host относится к robots.txt, а редирект 301 — к .htaccess соответственно. При слове склейка у меня первая ассоциация возникает с дерективой host.

  61. Алексей

    Здравствуйте!вы можете помочь зафиксировать фон на сайте ,что бы страница прокручивалась а фон оставался на месте?Спасибо!

  62. Алексей

    body{text-align:center;width:100%;margin:0 auto;font:14px Arial;background:url(/images/design/bg_spr.jpg) no-repeat center top} -это прописанно в CSS

  63. vlad

    подскажите пожалуйста что может означать адрес#.UGJNxKBLfPo в конце url
    появилось само

    1. atbliss.ru (автор)

      В HTML есть якоря. Якорь — это закладка с уникальным именем на определенном месте веб-страницы, предназначенная для создания перехода к ней по ссылке. Якоря удобно применять в документах большого объема, чтобы можно было быстро переходить к нужному разделу. В качестве значения href для перехода к этому якорю используется имя закладки с символом решетки (#) впереди href=»#mark»>Метка.

      1. Vlad

        Спасибо большое за ответ, но подскажите что их создает и почему в url?

        1. atbliss.ru (автор)

          Это надо смотреть что происходит в движке.

  64. Сергей

    Здравствуйте, я сделал в гугол веб-мастера/настройки
    Основной домен
    -Отображать URL-адреса как  http://www.orendar.com 
     -Отображать URL-адреса как  http://orendar.com
    я отметил :
    -Отображать URL-адреса как  http://orendar.com
    и теперь на сайте когда прописывать www ни автоматично исчезают, нужно ли дополнительно делать переадресацию в .htaccess ???

  65. Soao

    Здравствуйте. Скажите, а как сделать редирект 301 со всех страниц типа site.ru/catalog/page на страницы типа site.ru/page , где page — разные страницы ? То есть, все тоже самое только без catalog . Спасибо.

    1. atbliss.ru (автор)

      Надо составить регулярное выражение. В динамической части (page) написать маску-паттерн, состоящую из символов и чисел, если они есть в УРЛ.

      1. Soao

        Спасибо. Но нельзя ли конкретный пример, если не затруднит, для нас, балбесов?

      2. Soao

        Всё, понятно!
        RewriteEngine On

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

  66. Сергей

    А как сделать редирект с site.ru на site.ru/glavnaya
    Если не затруднит)))

    1. atbliss.ru (автор)

      Попробуйте вот этот код, только вместо site.ru напишите имя своего домена.

      Options +FollowSymLinks
      RewriteEngine On
      Redirect 301 / http://site.ru/glavnaya
  67. Сергей

    А его просто в .htacess поставить, или там какие хитрости есть?

    1. atbliss.ru (автор)

      В предыдущем комментарии я дописал еще две строки, то есть вот этих трех строк достаточно, чтобы редирект сработал.

  68. Сергей

    Сейчас попробуем))) А фон сразу заработает?

    1. atbliss.ru (автор)

      Какой фон?

  69. Сергей

    Не получается. Дает ошибку 500
    может я не так вставляю?

  70. Сергей

    Не фон хотел написать, а ОН ))) Сорри))

    1. atbliss.ru (автор)

      Стоп. А зачем вам вообще этот редирект?

  71. Сергей

    Да потому что у меня дубль главной страницы: http://shtoby-vyzit.ru/glavnaya/
    и http://shtoby-vyzit.ru
    Когда делаю редирект дубля на http://shtoby-vyzit.ru то потом не получается контент размещать, потому что он только тут мог размещаться http://shtoby-vyzit.ru/glavnaya/
    Короче весь день бьюсь и ничего поделать не могу.

    1. atbliss.ru (автор)

      Это у вас такая особенность движка?

      1. Алексей

        Сайт на джумла, перенес с тестового и перенаправление почему то перестало работать, не подскажете как сделать как тут человек просит с точностью наоборот, то есть с http://site.ru/glavnaya/ на http://site.ru/
        Заранее благодарю…
        уже настроил слава Богу перенаправление с без слеша на со слешем, а так же с www на без www, а так же с /index.php на / вот только это осталось
        пробовал использовать по примеру с /index.php но там ведь нет .php поэтому не знаю как правильно написать…

  72. Сергей

    У joomla у всех так. Вот я и хочу сделать редирект. Только что то не получается.

    1. Денис

      Может быть потому что у вас руки еще не выросли из нужного места, у Джумла все ок, проверьте порядок построения меню на предмет дублей. Если вы используете чпу и мод_реврайт, а также правильно строите структуру меню и присваиваете алиасы, то проблем с дублями не должно возникать.
      ПС используйте робот.тхт для закрытия доступа к дублям поисковым роботам или указывайте директивы непосредственно в настройках пункта меню.

  73. Сергей

    На одном форуме предлагают вот так сделать
    Redirect 301 /oldpage.html http://new-site.ru/newpage.html
    Только мои стариковские мозги совсем не соображают, как туда свои домены вставить.

    1. atbliss.ru (автор)

      Правильно, это тот же самый код. Вот так он выглядит с вашим доменом. Этот код надо вставить в файл в .htacess:

      Options +FollowSymLinks
      RewriteEngine On
      Redirect 301 / http://shtoby-vyzit.ru/glavnaya
  74. Сергей

    А почему, когда я этот код вставляю у меня выдает ошибку 500?
    Может я решетки не там ставлю или не в те сроки? Если знаете- научите пожалуста.

    1. atbliss.ru (автор)

      Ну я показал код ,который осуществляет редирект. А чего он у вас не работает, не знаю. Попробуйте аналогичным образом сделать редирект с одной страницы на другую, чтобы убедиться в правильности того, что вы делаете.

  75. Сергей

    Неправильно написал. Ошибку 400 дает. И теперь вообще ни один дубль главной страницы не открывается. Даже назад все коды убрал. Беда какая то)))

  76. Bangkok

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

    1. atbliss.ru (автор)

      Да, вроде бы как ноуфоллоу не спасает от утечки статвеса :) 301 редирект — это страница сменила адрес навсегда. А что такое 302 — временно перемещен? А для чего вообще эта затея, не совсем понятно условие задачи :)

  77. Елена

    Здравствуйте, fortresseo.

    Я столкнулась с такой проблемой. У меня на сайте такая структура постоянных ссылок /%year%/%postname%/ , то есть ссылки имеют вид htpp://сайт/2012/название поста/. Сейчас сайт постоянно обновляется и старые посты пускаются на главную страницу с изменением даты опубликования . Теперь получается, что старые посты с ссылками htpp://сайт/2011/название поста/ при изменении даты становятся такими htpp://сайт/2012/название поста/ и на старой странице происходит ошибка 404, хоть я думала, что будет автоматически переадресовывать на новый адрес. Как следует поступить в этом случае, можно ли как-то сделать автоматический 301 редирект, когда изменяется адрес поста?
    Заранее благодарю Вас.

    1. atbliss.ru (автор)

      Лена, у меня блог на Ворпрессе, и при изменения УРЛ, переадресация на пост под новым адресом происходит автоматически. А на счет структцры УРЛ я бы вам не советовал включать год — зачем он? Кроме того, что страница становится еще дальше от корня на один уровень и вес ее становится меньше.

      1. Елена

        fortresseo, объясните, пожалуйста, как тогда изменить структуру ссылок и чтобы не потерять позиции в поисковиках? Читала, что 301 редирект нужно использовать, но какой именно не нашла, если у сайта в ссылках год и название статьи. Позиции у сайта в гугле хорошие и в яндексе тоже растут и поэтому не знаю, как лучше поступить, чтобы не испортить всё

        1. atbliss.ru (автор)

          При смене УРЛ естественно будет проседание в позициях, но как только страница переиндексируется, все вернется на свои места. Только должен быть 301 редирект.

          1. Елена

            не подскажите, как реализовать 301 редирект?

            1. atbliss.ru (автор)

              Сначала указывается УРЛ старой страницы потом новой вот и весь секрет. Выше в посте показан синтаксис.

              1. Елена

                для меня это не вариант, так как страниц огромное количество

                1. atbliss.ru (автор)

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

                  1. Елена

                    часть никак не выделить, так как не знаешь, что и когда будет меняться (Тематика сайта кино). Вот на укоз сайтах же как то делается переадресация на новый адрес, когда меняется дата опубликования. Мне требуется тоже, чтобы при изменении даты (года) менялся и адрес сразу.

                    1. atbliss.ru (автор)

                      Ну почему нельзя? Ведь известно какую часть надо менять. В регулярном выражении описыватся, например Aa-Zz — это значит, что любая последовательность букв, 0-9 — любая последовательность цифр.

      2. Елена

        fortresseo, а год помогает в продвижении (мне так показалось). И вот не знаю, что делать. Конечно, хотелось бы сохранить структуру ссылок такой как есть (не хочется испытывать судьбу), но чтобы делался автоматический редирект со старой страницы на новую при смене даты опубликования.

      3. Анастасия

        Добрый день! У меня тоже WP стоит. Хочу изменить URL страниц, т.к. они длинные и не удобочитаемые. Как сделать что бы не было последствий со стороны поисковиков? Возможно ли появление дублей страниц? Если я просто изменю URL. Есть ли необходимость настраивать 301 редирект? Если есть, то как это сделать правильно.
        Сайт работает в системе nginx.

        1. atbliss.ru (автор)

          Анастасия, если вы хотите изменить адреса страниц, то обязательно использовать 301 редирект. Тогда не будет никаких дублей и по мере обхода сайта роботом, все будет ок.

  78. Елена

    fortresseo, ну я говорила, что будет изменяться год в ссылках. Например была ссылка «сайт/2011/название статьи/» , а после того, как изменяю дату опубликования на 2012 год, то уже ссылка будет иметь вид «сайт/2012/название статьи/». То есть изменяется только год и нужно как-то делать регулярное выражение на год

  79. Елена

    fortresseo, Вы мне не сможете помочь в составлении регулярного выражения для 301 редиректа?

    1. atbliss.ru (автор)

      Лена, к сожалению, я так сразу с ходу затрудняюсь написать. Мне надо вникнуть в детали задачи, попробовать сделать, протестировать. Я сожалею, но, времени этим заняться нет сейчас.

  80. Марианна

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.domain\.com$ [NC]
    RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

    Добрый день! У меня несколько вопросов: мне нужно сделать редирект с www. на неwww. Как правильно прописать 3ю и 4ю строки.
    http://www.parfumecity.com.ua
    parfumecity.com.ua
    Я просто не понимаю синтаксис в данном случае. В частности [NC] и [R=301,L].
    В общем, если Вам несложно, не могли бы Вы как-то прописать правильно эти 2 строки, так как боюсь напортачить в .htaccess

  81. Ivan

    Добрый день! Наконец нашел «читабельную» инфу по 301 редиректу, Илья спасибо!
    Не подскажите еще как сделать правильный редирект со старого формата урл на новый? Я так понимаю это должна быть эта конструкция:
    RedirectPermanent /old-url.html http://new-site.ru/new-url.html
    А как включить mod alias?
    Благодарю за ответ!

  82. Валерия

    Здравствуйте. а можно такой вопрос а как яндекс относится к этому? просто по Вашему совету щас всё зделала , получилось))) теперь переживаю за тиц и pr

    1. atbliss.ru (автор)

      Как Яндекс относится к редиректу? Замечательно. Если страница или сайт переехал на новый домен, то правильно проставленный редирект 301 с каждой страницы на аналогичную — это единственно правильное решение.Это позволит сохранить трафик и вес страницы.

  83. Валерия

    Спасибо большое, просто щас сайт на битрикс перевела, так вот сижу мучаюсь изучаю эту систему, старый на joomla был там тиц 2 и pr 20 был, вот и думаю что всё потеряю.

    1. atbliss.ru (автор)

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

  84. Артем

    Здравствуйте
    подскажите плиз..
    сделали радирект со старого домена на новый
    ==
    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.*) http://www.NEWDOMEN.ru/$1 [R=301,L]
    ==
    все работает, НО картинки ../../img.jpg
    не редиректят, отдают 200
    Как прописать редирект, который бы отправлял со всех урлов где на конце .jpg .gif .png
    на главную страницу нового домена?
    Спасибо

  85. Евгений

    Здравствуйте,очень необходим ваш
    совет,так как даже не знаю в каком
    направлении искать,создаю свой сайт на
    CMS Prestashop 1.6 для службы доставки
    товара из Китая,задача отображать всё
    содержание сайта(вместе с работой
    поисковой формы на сайте) с домена
    мама на моём домене дочка в режиме
    онлайн на всю страницу сайта,а в самом
    верху страницы сайта разместить шапку
    для отображения контактных телефонов
    и две,три папки с информацией о
    доставке,оплате и пр.(шапка на
    странице сайта может быть создана с
    помощью дополнительного самописного
    модуля для данной версии commerce
    CMS Prestashop 1.6).Что для этого
    требуется и нужно ли при этом
    переводить свой домен дочку на хостинг
    домена мамы???Буду очень признателен
    за ваш ответ!!!Спасибо P.S.На какой CMS
    работает домен мама не
    известно,контент сайта превышает
    10000 позиций товара.

  86. Евгений

    Уже разобрался сам,всем спасибо:)

    1. Олег

      Евгений, а рассказать? У меня такой же вопрос встал, правда не с товаром. Но нужно встроить готовый сайт, но не раскрученный, в другой — раскрученный… Спасибо.

  87. Ал

    Подскажите, как удалить 301 редирект и оставить оба домена в поиске?
    п.с. убрал редирект из .htacces , но все равно редиректит, пробовал из разных браузеров.

    1. Илья Соболь

      Редирект прописывается .htaccess. Если вы убрали его, то редиректа быть не должно.

  88. Иван

    А как сдеать редирект со страницы site.ru/main.html на страницу site.ru/main/ . При этом на сервере лежит просто файл main.html. То есть, надо, чтобы эта страница по адресу /main/ не давада 404 ошибку. Спасибо

    1. Илья Соболь

      То есть вы хотите, чтобы изменился вид адресной строки: вместо site.ru/main.html стало site.ru/main/

      1. Иван

        Да. Вот использую такой код:
        RewriteEngine On

        RewriteCond %{THE_REQUEST} s(S+).html
        RewriteRule ^ %1 [R=301,L]

        RewriteCond %{REQUEST_FILENAME}.html -f
        RewriteRule (.*)/ $1.html [L]

        но при этом слетают стили, а можно сделать так, стили чтобы работали? При этом, чтобы не менять путь к css файлам.
        И еще, как можно прописать такой редирект, но относительно к одной конкретной странице, а не ко всем?

        1. fortress-design

          Для одной страницы попробуйте вместо регулярного выражения написать не адрес.

          1. Иван

            Если так

            RewriteEngine On
            RewriteCond %{THE_REQUEST} page.html
            RewriteRule ^page/ [R=301,L]
            RewriteCond %{REQUEST_FILENAME}.html -f
            RewriteRule page/ page.html [L]

            то не работает. Подскажите, как лучше заменить?

  89. Славик

    Здравствуйте, а если делать 301 редирект с сайта с тиц и пр 0, на сайт с тиц и пр, например 100 на 2, то показатели не упадут?

  90. Илья Соболь

    Нет, конечно, не упадут. Только зачем это делать?

  91. Славик

    Решил перевести сайт на старый домен.

  92. Sid

    Здравствуйте!
    Подскажите, пож-ста, как правильно настроить редиректы?
    Со страницы, допустим, http://site.ru/2016/04/05/lpg на http://new-site.ru/lpg
    Сайт на WordPress. На новом сайте поменял постоянные ссылки с вида http://new-site.ru/2016/04/18/sample-post/ на http://new-site.ru/sample-post/.
    Проблема в том, что редирект со страницы http://site.ru/2016/04/05/lpg идет на страницу такую http://new-site.ru/2016/04/05/lpg.
    А это, естественно, страница 404.
    Пробовал так: Redirect 301 http://site.ru/2016/04/05/lpg/ http://new-site.ru/lpg/
    И так: RewriteEngine on RewriteCond %{HTTP_HOST} ^site.ru/2016/04/05/lpg/$ [OR] RewriteCond %{HTTP_HOST} ^www.site.ru/2016/04/05/lpg/$ RewriteRule ^/?$ «http://new-site.ru/lpg/» [R=301,L]
    Не получается.
    Хостер ответил, что как-то это надо сделать в .htaccess с помощью директивы mod_rewrite.
    Если сможете мне помочь, буду очень благодарен!
    Спасибо!

  93. Сергей

    Здравствуйте.
    У меня есть два сайта. оба сайта в индексе яндекса. Хотел полностью перенаправлять людей с одного сайта на другой, прописал в .htaccess самый простой редирект Redirect 301 / http://www.newsite.ru , но столкнулся с такой проблемой — если переходить с внутренних страниц сайта с которого ставил редирект, то переход осуществляется на несуществующую страницу сайта с 404 ошибкой, а нужно что-бы все страницы сайта с редиректом вели на главную страницу сайта акцептора. Подскажите, что я не так делаю.

  94. Nikita Oznobihin

    Вам нужен редирект со всех страниц одного домена на главную другого? Есть готовое решение вашей задачи:

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

  95. Майк

    Теперь все понятно, у меня получилось, спасибо!!

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: