Как эмулировать поддомен / язык в файле .htacces - PullRequest
1 голос
/ 27 февраля 2012

Я искал способ реализации поведения языковых поддоменов корпоративной версии GTranslate и подошел ближе.

Как правило, если вам нужны субдомены, такие как fr.domain.com, es.domain.com, de.domain.com и т. Д. для версии PRO (общая реализация) должен быть способ справиться с этим путем внесения изменений в файл .htaccess.

Это не совсем правильно, но это близко - например, если вы хотели "de.domain.com" для немецкого языка, может быть изменение как:

RewriteCond %{THE_REQUEST} !^[A-Z]+\ /gtranslate/
RewriteRule ^(.*)$ http://de.domain.com/gtranslate/translate.php?lang=de&url=$1 [NC,L,R=301]

Условие состоит в том, чтобы предотвратить рекурсию ... Это, кажется, близко, но проблема в том, что URL в браузере теперь показывает de.domain.com/gtranslate/translate.php?lang=de&url=about.html вместо желаемого de.domain.com/about.html

Должен быть способ справиться с этим, чтобы мы могли эмулировать это поведение.

Мотивация: Возможно, мне следовало бы заявить об этом сверху.

  1. Я использую общую версию с Joomla - кажется, работает большую часть времени, НО это теряет язык во время отправки формы, потому что перенаправление (POST?) Формы теряет код языка (обычно двухбуквенный) префикс к URL.
  2. Если бы мне удалось сохранить язык для каждого субдомена, то, похоже, я смог бы правильно сохранить язык во время отправки формы (а также потенциальная «любезность» наличия субдомена для отражения языка - могла бы хотя бы название страны).

Кто-нибудь, кто лучше в mod_rewrite, хочет попробовать?

1 Ответ

0 голосов
/ 27 февраля 2012

Должен быть способ справиться с этим, чтобы мы могли эмулировать это поведение.

Нет.Как только вы выполните 301, это будет полное перенаправление, поэтому URL будет изменен, и, к сожалению, вы не сможете избежать этого.

...