重定向.htaccess中的URL,但保留查询字符串



我想在。htaccess中重定向URL,但希望在URL的末尾保持查询字符串的(动态)参数(例如?id=1660,?id=1661等)

https://mywebsite.example/service/viewinvoice.php?id=1660

我想把它重定向到:

https://mywebsite.example/whmcs-bridge/?ccce=viewinvoice.php?id=1660

所以基本上:https://mywebsite.example/service/viewinvoice.php?id=...需要重定向到https://mywebsite.example/whmcs-bridge/?ccce=viewinvoice.php?id=...

我试了一下,没有成功

RewriteEngine Onrewritecsecond %{QUERY_STRING} (^|&)/service/viewinvoice.php?id =(数控)RewriteRule ^/?$/whmcs-bridge/?ccce=viewinvoice.php [L,R=301]

我认为这不是正确的解决方案。有人有什么建议吗?

您需要在重写规则上使用QSA(查询字符串追加)标志。来自文档:

当替换URI包含查询字符串时,RewriteRule的默认行为是丢弃现有的查询字符串,并用新生成的查询字符串替换它。使用[QSA]标志会导致查询字符串被组合。

从示例url中,您不需要在重写条件中匹配查询字符串。您正在匹配URL路径,这是作为重写规则本身的第一部分完成的。

你的规则应该是:

RewriteEngine On
RewriteRule ^/?service/viewinvoice.php$ /whmcs-bridge/?ccce=viewinvoice.php [L,R=301,QSA]

最新更新