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]
Другие вопросы по тегам