首页 > 解决方案 > 如何使用 utm 参数重定向链接?

问题描述

我有链接mydomain.com/?utm_source=xxx&lang=de,我想将其重定向到 mydomain.com/de/?utm_source=xxx. 我想对所有语言进行相同的重定向,除了en重定向到mydomain.com/?utm_source=xxx.

我试过这个:

RewriteCond %{QUERY_STRING} lang=(de|ar)
# exclude all requests starting with /wp-admin/
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteRule (.*) /%1/$1? [L,R=302]

上面的代码重定向但不包括 utm_source 参数。有什么建议吗?提前致谢。

标签: .htaccessredirect

解决方案


你可以有这样的规则:

# exclude all requests starting with /wp-admin/

# lang=en
RewriteCond %{THE_REQUEST} \?(.*&)?lang=en&?(\S*)\sHTTP [NC]
RewriteRule !^wp-admin/ %{REQUEST_URI}?%1%2 [R=302,NE,L,NC]

# lang other than en
RewriteCond %{THE_REQUEST} \?(.*&)?lang=([a-z]{2})&?(\S*)\sHTTP [NC]
RewriteRule !^wp-admin/ /%1%{REQUEST_URI}?%1%3 [R=302,NE,L,NC]

确认它工作正常后,替换R=302R=301. 测试规则时避免使用R=301(永久重定向) 。mod_rewrite


推荐阅读