.htaccess/mod_重写301问题
我有一个网站,在.htaccess/mod_重写301问题,.htaccess,mod-rewrite,redirect,redirectmode,.htaccess,Mod Rewrite,Redirect,Redirectmode,我有一个网站,在.htaccess文件中有以下mod\u rewrite规则: 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/
.htaccess
文件中有以下mod\u rewrite
规则:
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
冲突,并最终导致重定向循环
正则表达式确实不是我喜欢的东西,但我想我需要一个
重写匹配
规则来匹配以/web设计
开头但不包含/案例研究
的请求?如何在.htaccess
中实现这一点?请在.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以避免丢失现有的查询参数是很重要的。我已经测试了这些规则,它们似乎运行良好。根据您的要求,前两条规则中的尾随斜杠是可选的。如果您已经有
重定向
和重定向匹配
行,请将它们粘贴到此处。目前没有重定向
或重定向匹配
规则,只有重写规则
行。