#.htaccess #redirect #mod-rewrite #http-status-code-301 #litespeed
#.htaccess #перенаправление #мод-перезапись #http-status-code-301 #litespeed
Вопрос:
После изменения структуры постоянных ссылок WordPress я использовал RewriteMatch в файле .htaccess для создания 301 перенаправления для всех страниц.
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(?!page/)(. )$ https://mywebsite.com/$4
Недавно я переключился на OpenLiteSpeed и обнаружил, что это больше не работает. Кто-то подтвердил, что OLS игнорирует правило RedirectMatch, и посоветовал переключиться на RewriteRule, поэтому я использовал инструмент для тестирования htaccess и собрал следующее вместе.
Options FollowSymLinks
RewriteEngine On
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(?!page/) $4 [QSA,L]
У меня нет большого опыта в написании правил, но инструмент показал правильный вывод. Однако после добавления его в мой файл .htaccess он по-прежнему не работает. Я перезапустил OLS, но никаких изменений.
Я пытаюсь выяснить, есть ли что-то неправильное в правиле (т. Е. Что-то несовместимое с litespeed), или это связано с веб-сервером OLS?
Ответ №1:
Пожалуйста, попробуйте добавить это правило в начало вашего .htaccess
RewriteRule ([0-9]{4})/([0-9]{2})/(.*) https://example.com/$3 [R=301,L]
перезапустите OLS после того, как вы его добавили.
Комментарии:
1. Это сработало великолепно! Мне не нужно включать RewriteEngine и устанавливать флаг FollowSymLinks? Кажется, работает без них, но просто хотелось бы убедиться. Большое вам спасибо 🙂
2. на самом деле, движок не нужен, и опция вообще не работает в OLS … OLS только считывает,
rewriterule
иrewritecond
все остальное отбрасывается.