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

Jus*_*tin 5 apache .htaccess

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

http://www.reviews.com/review/review_review.cfm?review_id=135223
Run Code Online (Sandbox Code Playgroud)

http://www.reviews.com/
Run Code Online (Sandbox Code Playgroud)

现行规则:

Redirect 301 /review/review_review.cfm http://www.reviews.com/
Run Code Online (Sandbox Code Playgroud)

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

基于这里这里的几个堆栈问题,我应该能够添加?到Redirect规则,如下所示:

Redirect 301 /review/review_review.cfm http://www.reviews.com/?
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*Lin 15

你不能?使用mod_alias 摆脱无关.这?将阻止查询字符串被附加但使用mod_alias,它不幸地包括?作为重定向的一部分.但是,mod_rewrite不会,因为添加?到最后,它告诉它不包含任何现有的查询字符串,其工作方式与mod_alias相同,但之后它会被mod_alias再次处理,减去尾随?,因此最终结果?在URL的末尾没有尾随.所以类似于:

RewriteEngine On
RewriteRule ^/?review/review_review.cfm$ http://www.reviews.com/? [L,R=301]
Run Code Online (Sandbox Code Playgroud)

这将取代Redirect声明.