.htaccess/mod_rewrite 301 проблема
У меня есть сайт со следующим mod_rewrite
правила в .htaccess
файл:
RewriteRule ^web-design/case-studies/(.+)/$ work.php?slug=$1 [L,NC]
RewriteRule ^web-design/case-studies/ work.php [L,NC]
Я хочу настроить перенаправление 301 для любых запросов, таких как domain.com/web-design
(с косой чертой или без нее) и перенаправить на example.com/web-design/case-studies/
(с косой чертой).
К сожалению, сочетание Redirect
а также RedirectMatch
правила, которые я пытался противоречить RewriteRules
У меня есть и в конечном итоге с петлей перенаправления.
Регулярные выражения на самом деле не мое, но я думаю, мне понадобится RewriteMatch
Правило для соответствия запросов, которые начинаются с /web-design
но также не содержат /case-studies
? Как это будет сделано в .htaccess
?
1 ответ
Пожалуйста, попробуйте эти правила в ваших.htaccess правилах:
RewriteEngine on
Options +FollowSymlinks -MultiViews
RewriteRule ^web-design/?$ /web-design/case-studies/ [L,NC]
RewriteRule ^web-design/case-studies/?$ /work.php [L,NC]
RewriteRule ^web-design/case-studies/(.*)$ /work.php?slug=$1 [L,NC,QSA]
В последнем правиле важно использовать QSA, чтобы не потерять существующие параметры QUERY. Я проверил эти правила, и они, кажется, работают нормально. Конечный слеш необязателен в первых двух правилах в соответствии с вашими требованиями.