Htaccess добавление к строке запроса с QSA без перенаправления
Я пытаюсь добавить английскую версию на свой сайт на уровне поддоменов следующим образом:
- 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 всегда перенаправляет?
Заранее спасибо.
1 ответ
Решение
Попробуйте изменить свое последнее правило с:
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]