Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess/mod_重写301问题_.htaccess_Mod Rewrite_Redirect_Redirectmode - Fatal编程技术网

.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以避免丢失现有的查询参数是很重要的。我已经测试了这些规则,它们似乎运行良好。根据您的要求,前两条规则中的尾随斜杠是可选的。

如果您已经有
重定向
重定向匹配
行,请将它们粘贴到此处。目前没有
重定向
重定向匹配
规则,只有
重写规则
行。