我想从这样的事情重定向永久
http://www.example.de/page.html?cid=00340119050014953926&pc=70000

对此
http://www.secondexample.com/?cid=00340119050014953926&pc=70000

因此,这是一个没有“page.html”但具有相同参数的域。

是否可以使用RedirectPermanent做到这一点,或者我需要RewriteRule吗?

编辑:
问题是,我只想在URL有参数的情况下进行重定向,而在没有参数的情况下则不进行重定向。

最佳答案

我对RedirectPermanent并不熟悉,但是阅读一些文档似乎与RewriteRule ... [R=301]并没有太大不同。

您可以使用(未​​经测试的代码)完成所需的操作:

RewriteCond %QUERY_STRING ^(.+)$
RewriteRule page\.html http://www.secondexample.com/?%1 [R=301]

我相信即使没有尾随的?%1,您也可以做到这一点,因为如果不存在?,它将原始查询字符串附加到新的url上。如果请求的页面是page.html,则此RewriteRule匹配。然后,它检查RewriteCond是否为true(即,正则表达式与查询字符串匹配),在这种情况下,查询字符串的长度至少为1个字符。在这种情况下,它将重写URL,并使用代码301(永久移动)重定向页面。 %1在某种情况下是对第一个捕获组的反向引用,但是如前所述,可能没有必要。

09-11 22:54