Изменение соответствия перенаправления RewriteRule для OpenLiteSpeed

#.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 все остальное отбрасывается.