.htaccess 替换 url 参数值

.htaccess replace url parameter value

我有一个带有一些参数的 URL。其中一个参数称为 'lang',它看起来像这样:

https://example.com/example1/?id=1&lang=en

我想将所有当前 URL 的 lang=en 重定向到 lang=gb

https://example.com/example1/?id=1&lang=gb

注意: example1 文件夹是一个示例,它不是常量变量。 每个 URL 包含一个不同的文件夹名称。

这可能就是您要找的:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^(?:(.*&)?)lang=en(?:(&.*)?)$
RewriteRule ^ %{REQUEST_URI}?%1lang=gb%2 [R=301]

最好从 R=302 临时 重定向开始,然后再将其更改为 R=301 永久 一旦一切按预期工作,重定向。这样可以防止讨厌的缓存问题。

一般来说,您应该更愿意在实际的 http 服务器的主机配置中实施此类规则。分布式配置文件(“.htaccess”)应该只在没有其他选择的情况下使用。它们有许多缺点。