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

  • Добрый день.
    Имеется сайт, давно создавал записи, адреса которых в конце имеют приставку .html.
    Теперь хочу от этого избавиться. Как правильно сделать?
    В настройках постоянных ссылок:»/%category%/%postname%.html»
    Если здесь убрать .html, то при переходе на рубрики второго уровня выдает ошибку, что такой страницы нет, а должна вообще отображаться подрубрика.
    Если в .htaccess прописать:
    Код

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

    то запись открывается без .html, а старый адрес с .html — показывает страницу 404.
    При этом, записи, находящиеся в ПОДрубриках также перекидывают на 404.
    Плюс, адреса ссылок в рубриках остаются с .html.

    Как убрать .html, чтобы работали и записи, и рубрики, и ПОДрубрики?

Просмотр 15 ответов — с 1 по 15 (всего 37)
  • Уверен, что многие сталкивались с такой проблемой, но не знал, что даже на официальном сайте не могут дать какого-либо решения по работе движка с постоянными ссылками.

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

    1. https://codex.wordpress.org/%D0%A7%D0%90%D0%92%D0%9E/%D0%9F%D0%BE%D1%87%D0%B5%D0%BC%D1%83_%D0%BC%D0%BD%D0%B5_%D0%BD%D0%B8%D0%BA%D1%82%D0%BE_%D0%BD%D0%B5_%D0%BE%D1%82%D0%B2%D0%B5%D1%87%D0%B0%D0%B5%D1%82

    2. Люди ставят редирект и исправляют внутренние ссылки, если они были где-то были прописаны.

    SeVlad, спасибо. Я был уверен, что на форум периодически заходят разработчики.
    Редиректы не помогают, описывал ситуацию в первом сообщении. Вся загвоздка в том, что есть подрубрики. Они обрабатываются не адекватно. С просто рубриками — проблем нет, но у меня структура включает подрубрики.

    даже на официальном сайте не могут дать какого-либо решения

    Я вам советую попробовать плагин Permalink Manager Lite
    https://es.wordpress.org/plugins/permalink-manager/

    Или обратиться с тем же вопросом на англоязычную версию форума
    https://wordpress.org/support/view/all-topics/

    Здесь на русском форуме модераторы только за порядком следят. А разработчики сюда не заходят(

    Редиректы не помогают,

    Чему «не помогают»?

    А разработчики сюда не заходят

    Разработчики ЧЕГО? 🙂

    Модератор Yui

    (@fierevere)

    永子

    Я был уверен, что на форум периодически заходят разработчики.

    зачем вам разработчик WordPress для решения подобных проблем? Может Мэтта позвать? Попроще никак не обойдется ?

    Или обратиться с тем же вопросом на англоязычную версию форума
    https://wordpress.org/support/view/all-topics/

    там разработчики бывают не чаще. Форумами занимается команда поддержки.
    https://make.wordpress.org/support/

    Форумами занимается команда поддержки

    Я очень в теме, как работают ТАМ. Именно поэтому мой совет.

    ЗЫ. От темы отписываюсь. В перепалках не участвую

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    В настройках постоянных ссылок:»/%category%/%postname%.html»
    Если здесь убрать .html, то при переходе на рубрики второго уровня выдает ошибку, что такой страницы нет, а должна вообще отображаться подрубрика.

    На чистой установке не воспроизвелось.

    1. Установлен какой-нибудь плагин, убирающий /category/ из адресов рубрик?
    2. Какое значение указано в поле «Префикс для рубрик» в настройках постоянных ссылок?

    Я был уверен, что на форум периодически заходят разработчики.

    Заходят, но отвечать успевают не всем 🙂

    Sergey Biryukov, для удаления /category/ используется следующая строка:
    add_filter('category_link', create_function('$a', 'return str_replace("category/", "", $a);'), 9999);
    Префикс для рубрик — чистая строка.

    Заходят, но отвечать успевают не всем

    Понимаю.

    для удаления /category/ используется следующая строка:

    Лучше всего использовать для этой цели соответствующую опцию в сео-плагинах, вместо того чтобы тянуть на свой сайт всякий мусор в function.php и потом недоумевать почему что-то работает не так, как надо.

    • Ответ изменён 5 лет, 4 месяца назад пользователем O.

    Spectrum, не хотелось утяжелять плагинами движек. Посоветуйте какой плагин лучше использовать, какую опцию включать? Реально ли Ваш метод поможет?

    не хотелось утяжелять плагинами движек.

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

    Посоветуйте какой плагин лучше

    Советы — вещь неблагодарная. А плагинов собственно два наиболее известных, популярных
    и практически равных по функционалу
    1. https://ru.wordpress.org/plugins/wordpress-seo/
    2/ https://ru.wordpress.org/plugins/all-in-one-seo-pack/

    Я предпочитаю первый. ИМХО он более адекватный в настройках
    P.S. http://joxi.ru/4AkgaWJhygNa8A

    Модератор Yuri

    (@yube)

    не хотелось утяжелять плагинами движек.

    Тогда возьмите код из плагина, скажем, No Category Base (WPML), и вставьте в functions.php темы. Сэкономите несколько байт и наносекунд, зато получите удовольствие отслеживать изменения кода в плагине и повторение процедуры при изменении темы.

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