Поддержка Проблемы и решения Правильно убрать .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 ответов — с 16 по 30 (всего 37)
  • утяжелять плагинами движек

    Заблуждение. Болезнь, называемая плагинофобия. Но она излечима.

    два наиболее

    йоаст же еще есть

    йоаст же еще есть

    Так я и дал ссылки на Йоаст и Алл ин seo.

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

    Так я и дал ссылки на Йоаст

    о как…. он в каталоге даже не своим именем отсвечивает…..
    недаром он мне не нравится -)))

    Закомментировал строку в function.php, поставил No Category Base. Какие дальнейшие действия по избавлению от .html в конце адреса?

    В настройках постоянных ссылок:»/%category%/%postname%.html»

    Убрать .html и category
    Достаточно вот такой настройки: http://joxi.ru/823dEyJCJd9DXA
    Убрать:

    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]

    поставил No Category Base

    Пока не включать. Посмотреть сначала как без него будет

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

    И еще. Просто к сведению. Может пригодиться. На одном из моих сайтов работает плагин https://ru.wordpress.org/plugins/wp-no-base-permalink/
    Он удаляет не только префикс category, но ещё префикс tag и родительскую категорию из url дочерней

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

    Плагин отключил.
    Постоянные ссылки: /%postname%/
    В htaccess стандартная запись:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

    Результат: Записи открываются без hmtl, но со слешем в конце. Также отсутствуют рубрики, и подрубрики, ведущие к записи.
    Страницы открываются со слешем в конце. Если присутствует подстраница, то URL родительской страницы присутствует в адресе страницы.
    Если перейти на рубрику, чтоб увидеть записи в ней, то адрес в строке сохраняется, но открывается страница 404 темы.

    Что теперь?

    со слешем в конце

    Так и должно быть.

    Если перейти на рубрику

    Откуда?

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

    Просто из меню сайта. Там сейчас чистый html в меню. Т.е. структура не сохранилась.
    Но если перейти в рубрику из админки, то пристуствует в адресе /category/.

    Мне крайне желательно без слеша в конце. Т.е. для рубрик — норм, для записей — без.

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

    Просто из меню сайта. Там сейчас чистый html в меню. Т.е. структура не сохранилась.

    Вот там и причина 404

    Но если перейти в рубрику из админки, то пристуствует в адресе /category/.

    category уберите плагином

    Мне крайне желательно без слеша в конце

    Чем он вам помешал? Тоже всякого сео-маразма начитались?

    Модератор Yuri

    (@yube)

    но со слешем в конце.

    потому что Вы сами сделали

    Постоянные ссылки: /%postname%/

    со слешом в конце.

    Юрий, да, я про слеш понимаю, что сам добавил. Делаю строго по инструкции. Но знаю еще, что без него, может не стабильно работать с рубриками.

    Spectrum, убрал слеш в конце в постоянных ссылках, включил плагин. Страницы отображаются нормально, рубрики тоже, ну а записи — у них потерялись из адреса пути рубрик и подрубрик. Они открываются от адреса homeURL. Что не логично. Как этот момент поправить, чтобы в адресе записей присутствовали рубрики и подрубрики?

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

    Что не логично

    для кого нелогично?! Что вы на ерунде заморочились? ПС и тем более пользователям сайта совершенно по барабану ваша «логика» в url. И ещё раз вам говорят — читайте поменьше всякого сео маразма

    В конце концов сделайте лучше хлебные крошки если вас так беспокоит логика с почки зрения посетителей сайта

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

    Хлебные крошки, это само собой. Их никто не отменял. Но я так привык, чтобы путь был выстроен «правильно». Может, это влияние ОС ПК, может стереотип, но думаю, многие меня поддержат.
    Как можно реализовать этот момент?

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