我知道我的重定向和重写语句存在一些冲突,但我还没有找到解决方案。我对正则表达式并不满意。
目前,我有这个:
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的变体来尝试解决这个问题,但到目前为止还没有运气。我知道冲突是问题所在,但我无法删除原始重写规则,或者这些页面不起作用。
任何帮助都将不胜感激。
答案 0 :(得分:0)
Redirect
和RewriteRule
指令是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
部分。