Поддержка Проблемы и решения Как правильно изменить URL на сайте? Redirect старых ссылок на новые.

  • Решено Natalie

    (@logband82)


    Пару лет назад на скорую руку, не обдумав, создал произвольные постоянные ссылки вида /news/111%post_id%.html Сейчас статьи отображаются в таком виде mysite.com/news/11111385.html
    Это не очень красивая ссылка.

    Хотел бы заменить их на /%postname%-%post_id%.html Чтоб получилось так: mysite.com/primer-123.html

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

    Как правильно заменить ссылку и сделать переадресацию прежних статей на новый адрес так, чтобы они не пропали из индекса и посетители с других ресурсов не попадали на страницу 404?

    Есть ли возможность автоматом перенаправлять все новости с /news/111%post_id%.html на /%postname%-%post_id%.html ?

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Модератор Yuri

    (@yube)

    Есть ли возможность автоматом перенаправлять все новости с /news/111%post_id%.html на /%postname%-%post_id%.html ?

    Да. Через два редиректа. Первый делаете в .htaccess, второй wp сделает сам с короткой ссылки (/?p=xxx) на канонический адрес.

    p.s. Возможно получится обойтись одним редиректом

    • Ответ изменён 7 лет, 3 месяца назад пользователем Yuri.

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

    Сейчас у меня стоит такая ссылка:
    /news/111%post_id%.html
    Мне нужно поставить такую: /%postname%-%post_id%.html

    1. Я должен в строке «Произвольно» заменить на /%postname%-%post_id%.html и нажать «Сохранить изменения»? После этих действий WP делает сам редирект?
    2. Потом сделать в .htaccess редирект?
    3. Что именно написать в .htaccess для моего случая?
    RewriteEngine On
    RewriteRule ………………..

    p.s. Попробовал ненадолго просто поменять ссылку, как в пункте 1. Переадресация со старой ссылки на новую не происходит.

    • Ответ изменён 7 лет, 2 месяца назад пользователем Natalie.
    Модератор Yuri

    (@yube)

    В .htaccess перед # BEGIN WordPress впишите

    
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/news/111(\d+)\.html
    RewriteRule . /index.php?p=%1 [L]
    </IfModule>
    

    и можете ставить любую схему ЧПУ.

    Код в htaccess будет вычленять из адреса post_id и предавать его вордпрессу в get-парамтере p, т.е. как в короткой ссылке без ЧПУ. А дальше вордпресс, если не отключена канонизация, сделает редирект на адрес, собранный по текущей схеме ЧПУ.

    Юрий, спасибо еще раз за быстрый ответ. Сейчас буду пробовать.
    Для подстраховки: Как узнать, подключена ли канонизация или нет?

    Модератор Yuri

    (@yube)

    Как узнать, подключена ли канонизация или нет?

    Увидите. Если адрес в браузере изменится на новый, то включена. Она мышью не отключается.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Как правильно изменить URL на сайте? Redirect старых ссылок на новые.» закрыта для новых ответов.