Редирект с html на без html htaccess: 301 редирект со страниц на html на без html cо /? — Хабр Q&A

.*$ $0.html [L,QSA] </IfModule>

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

веб программирование — Настройка .

post-(\d+)-(\d+)-(\d+)\.html$ /posts/$1/$2/$3 [R=301,L,NC] # Не только от корня # RewriteRule post-(\d+)-(\d+)-(\d+)\.html$ posts/$1/$2/$3 [R=301,L,NC] # Убираем .html во всех случаях RewriteRule (.+)\.html$ /$1 [R=301,L,NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L,QSA]

Флаг NC означает нечувствительность к регистру.

Можно проверить здесь.

Слишком мало информации вы привели. К примеру, при каких условиях должен осуществляться редирект на URL без .html?

1

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

.htaccess — Как удалить .html из URL и перенаправить, когда html будет доступен напрямую

спросил

Изменено 2 года, 11 месяцев назад

Просмотрено 3к раз

Я знаю, что могу удалить .html, используя код удаления html .htaccess, который выглядит следующим образом: 9(.*)\.html$ /$1 [L,R=301]

Мне все еще не нравится эта причина, когда посетители заходят на мой сайт с расширением .html, тогда .html все равно не удаляется и все еще может отображаться посетителями. Но я хочу, чтобы пользователь был перенаправлен без расширения .html, когда он/она напрямую обращается к файлу. Например, когда посетитель хочет получить доступ к файлу file1. html непосредственно в браузере, он автоматически перенаправляет или удаляет расширение .html, поэтому вместо отображения файла file1.html при доступе непосредственно в браузере он автоматически переписывает «file1.html» на « file1″ без расширения html больше. 9/]+)/$ /$1/$2.html RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ Правило перезаписи (.*)$ /$1/ [R=301,L]

следует удалить

.html и добавить конечный /

источник

0

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

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

.htaccess — htaccess перенаправляет все страницы, заканчивающиеся на .html, на страницы без html, кроме некоторых страниц

Задавать вопрос

спросил

Изменено 4 года, 2 месяца назад

Просмотрено 338 раз

У меня возникла проблема с правилами .htaccess для перенаправления.

Мне нужно перенаправить страницы, заканчивающиеся на .html , на страницы, заканчивающиеся косой чертой.
/about-us.html на /about-us/

Но есть также страницы, где мне нужно перенаправить на определенную страницу без .html как
/gallery/first-gallery/this- is-the-gallery.

html to /gallery/new/

Проблема в том, что мои правила плохо работают вместе, кажется, что правило перенаправления страниц .html игнорирует все остальные правила.

Так выглядит мой .htaccess

9/?(.*).(html)$ /$1 [R=301,L] Перенаправление 301 /about-us/photo-gallery/17577-album-mca-corona-clay-tile-roof-princeton-texas/131173-58e29f485064eprinceton-texas-roofing-services-1.html /about-us/photo-gallery /17577-альбом-mca-corona-clay-tile-roof-princeton-texas/ Перенаправление 301 /about-us/photo-gallery/17577-album-mca-corona-clay-tile-roof-princeton-texas/131174-58e2a063b8b06princeton-texas-roofing-services-2.html /about-us/photo-gallery /17577-альбом-mca-corona-clay-tile-roof-princeton-texas/ #Много других правил 301 ниже

Итак, когда я набираю
domain.com/about-us/photo-gallery/17577-album-mca-corona-clay-tile-roof-princeton-texas/131173-58e29f485064eprinceton-texas-roofing-services-1 .html


в браузере перенаправляет на
domain. com/about-us/photo-gallery/17577-album-mca-corona-clay-tile-roof-princeton-texas/131173-58e29f485064eprinceton-texas-roofing- services-1
, где мне нужно это конкретное перенаправление для перенаправления на
/about-us/photo-gallery/17577-album-mca-corona-clay-tile-roof-princeton-texas/ 9/?(.*).(html)$ /$1 [R=301,L] в конец, надеясь, что сначала обработаются вышеприведенные правила, но это не сработало.

Что я могу сделать, чтобы это работало так, как мне нужно?

  • .htaccess
  • перенаправление

Прежде всего, если есть mod_alias как перенаправление и mod_rewrite как RewriteRule mod_rewrite

правила выполняются до mod_alias правил.

Есть много вариантов решения этой проблемы, например, исключение всех других правил перенаправления из основного переписывающего правила, но считается, что другие правила 9(.*)\.(html)$ /$1 [R=301,L]

Правила выше проверят, приходит ли URI в такой форме /something/something/something/something.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *