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

  • Приветствую!

    Имеется такая себе проблемка. Мигрировали с собственнонаписанной CMS на WordPress. Вначале всё хорошо было, связали обновленный шаблон с вордпресом но незадачка попалась. Итак…

    Имеем http://sitename.com/ru/
    При вводе http://sitename.com/ru/sma
    Отдает коды:
    — 301 http://sitename.com/ru/sma-chtoto-ewe
    — 200

    В итоге на сайте не существует sma и я хочу передавать заголовком код 404, но никак не могу локализовать такую проблемку. Думаю в будущем гуглящим людям пригодится этот топик (заголовок написан так, чтобы в будущем нашли)

    Список плагинов:
    — Polylang
    — W3 total cashe
    — Yoast SEO
    — WooCommerce (сомневаюсь что дело в нем)

    Итак товарищи, у кого какие идеи?

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Можно добавить фрагмент в functions.php активной темы:

    
    function remove_redirect_guess_404_permalink( $redirect_url ) {
    	if ( is_404() ) {
    		return false;
    	}
    	return $redirect_url;
    }
    add_filter( 'redirect_canonical', 'remove_redirect_guess_404_permalink' );
    

    Ох спасибо Вам!
    Это решение подходит как раз.

    А можете подсказать, почему оно так переадресовывает? Базис php имеется, но все же, какой паблик или функция этим занимается? Или забить болт на это? 🙂

    Модератор Yuri

    (@yube)

    почему оно так переадресовывает?

    Движок пытается починить обрезанный урл. Он же не знает, что это не просто где-то потерялось «-chtoto-ewe», а полный правильный адрес неправильной (отсутствующей) страницы.

    А в чем проблема. Я создавал (специально чтобы протестировать) /sma при существующем /sma-chtoto-ewe при том переадресовывало все равно на второе. Т.е. игнорировало существующую /sma.
    Возможно либо баг либо фиг его знает 🙂

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Я создавал (специально чтобы протестировать) /sma при существующем /sma-chtoto-ewe при том переадресовывало все равно на второе. Т.е. игнорировало существующую /sma.

    Перенаправления кешируются браузером. Чтобы обойти кеш, можно добавить в URL какой-нибудь параметр: http://sitename.com/ru/sma?refresh=1.

    Не уверен. Проверял файрфоксом, скрытый режим Ctrl+Shift+P. Не должно было быть кешированным.
    Благодарю Вас за помощь. Уже пометил, что решено)

    • Ответ изменён 7 лет, 7 месяцев назад пользователем Vol Markula.
Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Как убрать автоматический редирект по слагу» закрыта для новых ответов.