如何将该链接(https://www.example.com/?lang=zh_CN)重定向到301(https://www.example2.com/en/)?

时间:2019-01-22 16:28:27

标签: .htaccess redirect query-string url-redirection http-status-code-301

我正在尝试从.htaccess文件中的此链接进行重定向301。

旧网址:https://www.example.com/?lang=en

新网址:https://www.example2.com/en/

我将尝试使用以下说明:

RewriteCond   %{REQUEST_URI}    ^/$

RewriteCond   %{QUERY_STRING}   ^lang=en$

RewriteRule   ^(.*)$   /en/     [R=301,L]

喜欢这个问题的答案(301 redirect from URL with query string to new domain with different query string),但我的结果是:https://www.example2.com/en/?lang=en

如何删除查询字符串“?lang = en”并获取新的URL?

现在它可以与添加标志QSD一起使用,但是现在我遇到了这个问题:

我也需要重定向此链接:

旧网址2:https://www.example.com/?lang=de

新网址2:https://www.example2.com/de/

此链接:

旧网址3:https://www.example.com/?lang=ru

新网址3:https://www.example2.com/ru/

如果我使用上述说明,更改查询字符串,则重定向不适用于所有语言。

RewriteCond   %{REQUEST_URI}    ^/$

RewriteCond   %{QUERY_STRING}   ^lang=en$

RewriteRule   ^(.*)$   /en/     [R=301,L,QSD]



RewriteCond   %{REQUEST_URI}    ^/$

RewriteCond   %{QUERY_STRING}   ^lang=de$

RewriteRule   ^(.*)$   /de/     [R=301,L,QSD]



RewriteCond   %{REQUEST_URI}    ^/$

RewriteCond   %{QUERY_STRING}   ^lang=ru$

RewriteRule   ^(.*)$   /ru/     [R=301,L,QSD]

我该如何解决这个新问题?

1 个答案:

答案 0 :(得分:0)

这将完成这项工作:

RewriteCond %{QUERY_STRING} ^lang=en$
RewriteRule ^$ https://www.example2.com/en/?  [R=301,L]

基本上,如果您在末尾添加?,则会从链接中删除查询。