.htaccess 301重定向与rewriterule冲突

时间:2015-01-14 08:57:33

标签: php apache .htaccess mod-rewrite redirect

我正在尝试重定向网址,但它与重写规则冲突,我正在使用此重定向规则

Redirect 301 /antique-vintage-rugs/170-antique-oriental-rugs-carpets https://example.com/antique-vintage-rugs/170-antique-rugs    

它把我带到了这个链接     https://example.com/antique-vintage-rugs/170-antique-rugs?action=clear&template=170-antique-oriental-rugs-carpets而不是这个     https://example.com/antique-vintage-rugs/170-antique-rugs

我的重写网址就是这个

RewriteCond %{QUERY_STRING} (.*)
RewriteRule ^antique-vintage-rugs/(.+) results.php?action=clear&template=$1 [NC]

有什么方法可以获得所需的输出重定向链接吗?

2 个答案:

答案 0 :(得分:0)

你只需要在这里使用mod_rewrite而不是将它与mod_alias(Redirect指令所属的地方)混合使用。混合两者时,两者最终都会处理相同的请求。

因此,请使用:

而不是Redirect
RewriteRule ^antique-vintage-rugs/170-antique-oriental-rugs-carpets https://example.com/antique-vintage-rugs/170-antique-rugs [L,R=301]

但请确保 之前

答案 1 :(得分:0)

我有一个类似的问题。我试图从cpanel添加重定向,而我已经在我的.htaccess文件中写了一些重写规则。我得到的错误是“没有加工标签” 我最终做的是保留了我现有规则的副本并清理了.htaccess。然后去添加了我需要的所有重定向,从cpanel,然后最后在文件的末尾放回我自己的重写规则。这对我有用