我正在尝试从.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]
我该如何解决这个新问题?
答案 0 :(得分:0)
这将完成这项工作:
RewriteCond %{QUERY_STRING} ^lang=en$
RewriteRule ^$ https://www.example2.com/en/? [R=301,L]
基本上,如果您在末尾添加?
,则会从链接中删除查询。