mojwp.ru
Назад

Как сделать 301 редирект .htaccess для статей при смене URL

Вопрос: У статьи сменился адрес ссылки. Как не потерять посетителей?

Ответ: В данном случае поможет 301 редирект, который можно задать в файле .htaccess и не использовать при этом плагины. Можете почитать об этом в справке Google или Яндекс.

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

Где найти файл .htaccess

Данный файл будет лежать в корне вашего сайта на хостинге. Для этого зайдите по ftp на свой хостинг и обнаружите его рядом с файлом wp-config.php, который вы правили при установке WordPress (если делали это вручную).

Чтобы открыть файл .htaccess для редактирования используйте встроенный в Windows Блокнот. Пользователи программы Total Commander могут просто на нем нажать клавишу F4.

Как задать 301 редирект в .htaccess

В зависимости от настроек вашего сайта, установленных плагинов, которые могут прописывать в нем свои правила, в файле .htaccess уже могут содержаться записи.

Вам необходимо в начале файла прописать строку RewriteEngine on, которая включает процесс преобразования ссылок. А далее с новой строки вы уже будете прописывать условия самого редиректа:

RewriteEngine on
RewriteRule  ^staryi-url/$ /novyi-url.html [R=301,L]

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

Например:

У меня старая статья размещалась по адресу https://mojwp.ru/staryi-url/. Теперь я захотел вместо / в конце поставить .html и слегка подредактировать сами символы в ссылке на https://mojwp.ru/novyi-url.html.

В коде выше мы видим, что:

  • мы нигде не пишем адрес сайта https://mojwp.ru, т.к. это внутренний редирект (перенаправление)
  • в старом адресе статьи я в начале не ставлю знак /, а вместо него стоит ^
  • в новом адресе я уже ставлю знак / и меняю адрес на нужный мне, т.е. если требуется смена символов/букв ссылки и дописываю в конце .html (по необходимости)

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

RewriteEngine on
RewriteRule  ^staryi-url/$ /novyi-url.html [R=301,L]
RewriteRule  ^staryi-url2/$ /novyi-url2.html [R=301,L]
RewriteRule  ^staryi-url3/$ /novyi-url3.html [R=301,L]
RewriteRule  ^staryi-url4/$ /novyi-url4.html [R=301,L]

Когда все сохранили и закинули снова на хостинг, то стоит проверить работоспособность редиректа. Попробуйте открыть страничку по старому адресу. Она должна автоматически вас переинуть на новый адрес. Если не получилось, то значит что-то не так сделали. Внимательно проверьте корректность записи.

Наглядно посмотреть как прописать 301 редирект в htaccess можете в видео ниже.

Черкани пару строк
  • Алексей
    Опубликовано: 02.10.2014 Ответить на сообщение

    Спасибо друг выручил.

  • Руслан
    Опубликовано: 29.05.2015 Ответить на сообщение

    Здравствуйте Ув.Виталий. У меня вопрос. Два месяца искал, прокуривал все видео и форумы, к счастью случайно Ваше видео увидал, сразу все понял, все чотко,кратко,емко а главное что понял теперь))) Вопрос:Ссылка вставляется вместе с доменом (скопировал адрес стр. на которую хочу перенаправить) можно с доменом или удалить и оставить только урлу. (У меня все урлы стр. так копируются) Огромное спасибо Вам за все. С Ув. Рус

    • Виталий
      Опубликовано: 30.05.2015 Ответить на сообщение

      Добрый.
      Без домена, если вы в рамках этого сайта редирект делаете.

  • Руслан
    Опубликовано: 30.05.2015 Ответить на сообщение

    Ясно, пожалуйста проверьте правильно?

    RewriteEngine on
    RewriteRule ^avto-diler-vaz/diler-vaz-v-moskve/$ /vaz-lada-granta.html [R=301,L]
    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    • Виталий
      Опубликовано: 31.05.2015 Ответить на сообщение

      Если проверили работоспособность - значит правильно

  • Руслан
    Опубликовано: 30.05.2015 Ответить на сообщение

    после редиректа с списка на 17-й стр. яндекса страница пропала до 100-й дошел не нашел, почему так?

    • Виталий
      Опубликовано: 31.05.2015 Ответить на сообщение

      Подобный вопрос вам нужно задать техподдержке Яндекс

  • Руслан
    Опубликовано: 02.06.2015 Ответить на сообщение

    Виталий, у меня не перекидывает на нужную стр, должно ли время пройти может, чтоб яндекс засчитал редирект или...? По сути я правильно сделал? Виталий может у Вас есть на заметке веб-мастер который поможет за отдельную плату+ покажет разок как правильно делать, а то не дело постоянно просить кого-то!? Спасибо большое

    • Виталий
      Опубликовано: 02.06.2015 Ответить на сообщение

      Если сразу не перекидывает - значит что-то не правильно сделали.
      К сожалению, никого подсказать для выполнения данных работ не могу, т.к. все делаю сам. Если вас не устраивает моя кандидатура - тогда можете поискать по профильным форумам или на фрилансе.

  • Галина
    Опубликовано: 30.10.2016 Ответить на сообщение

    Добрый вечер Виталий. Перечитала кучу сайтов и видео пересмотрела на эту тему.Разобралась только сейчас с вашей помощью, спасибо. Не понятно только одно, зачем делать редирект на все существующие записи и страницы, если идёт замечание робота,что нет редиректа 301, как в этом случае быть, если адрес записи не менялся.

  • Анатолий
    Опубликовано: 30.10.2016 Ответить на сообщение

    При глобальной смене структуры сайта - можно прописать код для редиректа со старых адресов?
    с /%post_id%.htm на /%category%/%postname%.htm

Имя
Укажите своё имя и фамилию
E-mail
Без СПАМа, обещаем
Текст сообщения
Отправляя данную форму, вы соглашаетесь с политикой конфиденциальности и правилами нашего сайта.