我想从这样的东西重定向永久 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 是否为真(即正则表达式匹配查询字符串),在这种情况下查询字符串是否至少为 1 个字符长。如果是这种情况,它会重写 url 并使用代码 301(永久移动)重定向页面。 %1
是对条件中第一个捕获组的反向引用,但如前所述,可能没有必要。
关于.htaccess - 将带有参数的 URL 重定向到具有相同参数的其他域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17108051/