在添加的查询字符串中重定向301并重写规则结果

时间:2014-04-04 19:10:47

标签: .htaccess mod-rewrite redirect url-rewriting

我知道我的重定向和重写语句存在一些冲突,但我还没有找到解决方案。我对正则表达式并不满意。

目前,我有这个:

RewriteRule category_(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)\.html$ category.php?brand_name=$1&bid=$2&stid=$3&lid=$4&did=$5&sid=$6&sort=$7

它会产生一个与此类似的页面:

category_Jackets-1-2-3-4-5-6.html

我现在想要进行搜索引擎优化,将该页面重定向到:

category_Womens_Jackets-1-2-3-4-5-6.html

我尝试过:

Redirect 301 /category_Jackets-1-2-3-4-5-6.html category_Womens_Jackets-1-2-3-4-5-6.html

但结果是:

category_Womens_Jackets-1-2-3-4-5-6.html?brand_name=Jackets&bid=1&stid=2&lid=3&did=4&sid=5&sort=6

我尝试使用Rewrite rule和Redirect的变体来尝试解决这个问题,但到目前为止还没有运气。我知道冲突是问题所在,但我无法删除原始重写规则,或者这些页面不起作用。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

RedirectRewriteRule指令是2个不同模块(mod_alias和mod_rewrite)的一部分,两者都将应用于不同点的相同URI。所以你要同时重写 AND 重定向。如果你正在使用重写,你应该坚持使用mod_rewrite进行重定向。

RewriteRule ^category_Jackets-1-2-3-4-5-6\.html$ category_Womens_Jackets-1-2-3-4-5-6.html [L,R=301]

标志中的R=301告诉它301重定向。您希望 之前其他规则,并且您的其他规则需要考虑Womens部分。