#regex #.htaccess #mod-rewrite #http-status-code-301 #litespeed
#регулярное выражение #.htaccess #мод-перезапись #http-status-code-301 #litespeed
Вопрос:
Эта установка WordPress ранее имела структуру постоянных ссылок year/mo/day/post-name
, но позже была изменена, чтобы использовать только название записи. Этот 301 RewriteRule был добавлен в начало htaccess, и он отлично работает по большей части, но по-прежнему не работает по нескольким ссылкам, оставляя значение дня в URL.
RewriteRule ([0-9]{4})/([0-9]{2})/(.*) domain.com/$3 [R=301,L]
Я не могу понять, что является причиной этого, куда большинство перенаправляетdomain.com/post-name как и ожидалось, но некоторые возвращаются как domain.com/08/post-name например.
Есть ли проблема с регулярным выражением, которое упускается из виду?
Комментарии:
1. вы имеете в виду «domain.com/08/post-name » не перенаправляет или «/2020/08/08/ post-name «перенаправлено на «/08 / post-name» ?
2. @qtwrk Извините, это второй. «/2020/08/08/ post-name» перенаправляет на «/ 08 / post-name»
Ответ №1:
Если все ваши сообщения имеют одинаковый формат, как в /2020/01/01/post-name
затем попробуйте использовать
RewriteRule ([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*) https://example.com/$4 [R=301,L]
Если вы перепутали URL для обоих /2020/01/01/post-name
и /2020/01/post-name
затем попробуйте использовать
RewriteRule ([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*) https://example.com/$4 [R=301,L]
RewriteRule ([0-9]{4})/([0-9]{2})/(.*) https://example.com/$3 [R=301,L]