.htaccess重定向没有查询字符串

时间:2013-03-01 04:46:54

标签: apache .htaccess

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

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/

使原始网址重定向到http://www.reviews.com/?review_id=135223

基于一些堆栈问题herehere,我应该可以在重定向规则中添加?,如下所示:

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

但重定向到http://www.reviews.com/?。落后?遗迹。我怎么摆脱这个杀了我。

1 个答案:

答案 0 :(得分:14)

你无法使用mod_alias摆脱无关的??将阻止查询字符串被附加但使用mod_alias,但遗憾的是,它包含?作为重定向的一部分。但是,mod_rewrite不会,因为将?添加到结尾,告诉它不包含任何现有的查询字符串,其工作方式与mod_alias相同,但之后再次由mod_alias处理,减去尾随?,因此最终结果是在网址末尾没有尾随?。如下所示:

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

这将取代Redirect声明。