0

我正在尝试在子域级别将英文版本添加到我的网站,如下所示:

  • en.mywebsite.com/business-name :这将显示子页面的英文版本。

现在我实际上已经通过使用以下代码将子域附加到查询字符串以某种方式实现了它:

Options -Indexes

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\.mywebsite\.com [NC]
RewriteCond %{HTTP_HOST} !^en\.mywebsite\.com [NC]
RewriteRule (.*) http://www.mywebsite.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^en\.mywebsite\.com
RewriteRule ^(.*)$ http://www.mywebsite.com/$1?language=en [QSA]

问题是,它是通过将用户重定向到 www.mywebsite.com/business-name?language=en 来实现的,但我想避免重定向,而是通过虚拟方式传递“新生成的”查询字符串。

它可以实现,还是 QSA 总是重定向?

提前致谢。

4

1 回答 1

0

尝试更改您的最后一条规则:

RewriteCond %{HTTP_HOST} ^en\.mywebsite\.com
RewriteRule ^(.*)$ http://www.mywebsite.com/$1?language=en [QSA]

RewriteCond %{HTTP_HOST} ^en\.mywebsite\.com
RewriteCond %{QUERY_STRING} !language=
RewriteRule ^(.*)$ /$1?language=en [L,QSA]
于 2015-10-13T16:29:39.660 回答