我想从这样的事情重定向永久
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
在某种情况下是对第一个捕获组的反向引用,但是如前所述,可能没有必要。