Поддержка Проблемы и решения Как изменить все внутренние ссылки

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

    Поменял на сайте структуру постоянных ссылок, было /%postname%, стало /%postname%/.

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

    Подскажите есть какой то способ кроме как изменять всё вручную?

    • Тема изменена 1 год, 5 месяцев назад пользователем Анатолий.

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • ко всем ссылкам добавился в конце слеш?

    Как вариант добавить в .htaccess:

    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !(.html)
    RewriteCond %{REQUEST_URI} !(.jpg)
    RewriteCond %{REQUEST_URI} !(.*)/$
    RewriteRule ^(.*)$ http://www.your-site.ru/$1/ [L,R=301]

    Не забудьте указать адрес своего сайта вместо your-site.ru!
    или

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

    И ещё:

    # очищаем URL от дублирования слешей, в любом месте, включая конец URL
    RewriteCond %{THE_REQUEST} //
    RewriteRule ^.*$ $0 [R=302,L,NE]
    
    # любой файл содержащий .html и не существующий физически переписывается
    RewriteCond %{REQUEST_URI} (\.)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ([^.]+)\.html$ $1/ [R=301,L]
    
    # любой файл не содержащий точку и не заканчивающийся на слеш переписывается
    RewriteCond %{REQUEST_URI} !(/$|\.) 
    RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
    
    # The Friendly URLs part
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    • Ответ изменён 1 год, 5 месяцев назад пользователем zoltsmaster.
    • Ответ изменён 1 год, 5 месяцев назад пользователем zoltsmaster.
    • Ответ изменён 1 год, 5 месяцев назад пользователем Yui.

    Как вариант добавить в .htaccess:

    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !(.html)
    RewriteCond %{REQUEST_URI} !(.jpg)
    RewriteCond %{REQUEST_URI} !(.*)/$
    RewriteRule ^(.*)$ http://www.your-site.ru/$1/ [L,R=301]
    Не забудьте указать адрес своего сайта вместо your-site.ru!
    или

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

    Насколько я понимаю это условие поставит переадресацию, правильно? А мне нужно переписать внутренние которые есть на сайте.

    • Ответ изменён 1 год, 5 месяцев назад пользователем Анатолий.

    Может с помощью SQL команды можно сделать?

    Может с помощью SQL команды можно сделать?

    Быть может поможет….
    https://ru.wordpress.org/plugins/better-search-replace/

    Всё сделал с помощью плагина Broken Link Checker. На исправление более 4000 ссылок ушло примерно 3 часа

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