我想从这样的东西重定向永久物 http://www.example.de/page.html?cid=00340119050014953926&pc=70000
对此 http://www.secondexample.com/?cid=00340119050014953926&pc=70000所以它是一个不同的域,没有“page.html”,但具有相同的参数。
是否可以使用RedirectPermanent执行此操作,还是需要RewriteRule?
编辑: 问题是我只想在URL有参数的情况下重定向,但如果没有则不重定向。
答案 0 :(得分:0)
我不熟悉RedirectPermanent
,但阅读一些文档似乎与RewriteRule ... [R=301]
没有太大区别。
您可以使用(未经测试的代码)完成您想要的任务:
RewriteCond %QUERY_STRING ^(.+)$
RewriteRule page\.html http://www.secondexample.com/?%1 [R=301]
我相信你甚至可以在没有尾随?%1
的情况下执行此操作,因为如果不存在?
,它会将原始查询字符串附加到新网址。如果请求的页面为page.html
,则此RewriteRule匹配。然后检查RewriteCond是否为真(即正则表达式与查询字符串匹配),在这种情况下,如果查询字符串长度至少为1个字符。如果是这种情况,它会重写URL并使用代码301重定向页面(永久移动)。 %1
是对条件中第一个捕获组的反向引用,但如前所述,可能没有必要。