5

我正在尝试重定向(注意没有查询字符串):

http://www.reviews.com/review/review_review.cfm?review_id=135223

http://www.reviews.com/

目前的规则:

Redirect 301 /review/review_review.cfm http://www.reviews.com/

导致原始 URL 重定向到http://www.reviews.com/?review_id=135223

基于这里这里的一些堆栈问题,我应该能够?在重定向规则中添加一个,如下所示:

Redirect 301 /review/review_review.cfm http://www.reviews.com/?

但这会重定向到http://www.reviews.com/?. 尾随 ? 遗迹。我该如何摆脱它,它正在杀死我。

4

1 回答 1

16

?您无法使用 mod_alias摆脱多余的东西。这?将阻止附加查询字符串,但使用 mod_alias,不幸的是,它包含 a?作为重定向的一部分。但是,mod_rewrite 不会,因为添加?到末尾,告诉它不包含任何现有的查询字符串,其工作方式与 mod_alias 相同,但之后它会被 mod_alias 再次处理,减去尾随?,所以最终结果在 URL 的末尾没有尾随?。所以像:

RewriteEngine On
RewriteRule ^/?review/review_review.cfm$ http://www.reviews.com/? [L,R=301]

这将取代Redirect声明。

于 2013-03-01T05:11:52.113 回答