.htaccess - 将带有参数的 URL 重定向到具有相同参数的其他域

标签 .htaccess redirect

我想从这样的东西重定向永久 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/

相关文章:

wordpress - 在整个网站和内容上强制使用 HTTPS,但允许多个项目使用 HTTP

redirect - NestJS - 检查失败时将用户从 guard 重定向

javascript - 使用Reactjs Router Switch进行导航时如何在网页之间传递变量

html - 重定向到另一个页面元标记

.htaccess - 没有 index.php 的查询字符串

apache - 将所有请求从旧域重定向到新域

php - 用户名作为 laravel 的子域

linux - htaccess 重定向到子域并保留字符串

macos - 重定向音频输出

php - htaccess 带有语言和页面参数的重定向 url