Вот что вы, возможно, захотите сделать, чтобы иметь возможность обрабатывать в будущем много под-языков.
Проверьте ваш хост: если он начинается с es
, то измените ваш корень документа .Вот совет:
RewriteCond %{HTTP_HOST} ^es\.mydomain\.com$
# Change the path:
RewriteRule ^/?$ /public/www/index.php
А теперь кое-что немного более продвинутое, о чем вы можете подумать: мультиязычность для того же сайта.
RewriteCond %{HTTP_HOST} ^(us|fr|pt)\.mydomain\.com$
# Create an environment variable to remember the language:
RewriteRule (.*) - [QSA,E=LANGUAGE:%1]
# Now check if the LANGUAGE is empty (= doesn't) exists
RewriteCond %{ENV:LANGUAGE} ^$
# If so, create the default language (=es):
RewriteRule (.*) - [QSA,E=LANGUAGE:es]
Хорошо, теперь у нас есть переменная окружения, в которой установлен язык.
Вы просили об этом:
es.domain.com
необходимо указать на /public/www/index.php
Итак, добавьте это последнее правило:
RewriteCond %{ENV:LANGUAGE} ^es$
# Change the root folder:
RewriteRule ^/?$ /public/www/index.php
В общем:
RewriteCond %{HTTP_HOST} ^(us|fr|pt)\.mydomain\.com$
# Create an environment variable to remember the language:
RewriteRule (.*) - [QSA,E=LANGUAGE:%1]
# Now check if the LANGUAGE is empty (= doesn't exist)
RewriteCond %{ENV:LANGUAGE} ^$
# If so, create the default language (=es):
RewriteRule (.*) - [QSA,E=LANGUAGE:es]
# Change the root folder of the spanish language:
RewriteCond %{ENV:LANGUAGE} ^es$
# Change the root folder:
RewriteRule ^/?$ /public/www/index.php
То, что я не получаю, это: почему вы не можете просто написать один раз для всех языков и сделать что-то вроде:
RewriteCond %{HTTP_HOST} ^(us|fr|pt)\.mydomain\.com$
# Create an environment variable to remember the language:
RewriteRule (.*) - [QSA,E=LANGUAGE:%1]
# Now check if the LANGUAGE is empty (= doesn't exist)
RewriteCond %{ENV:LANGUAGE} ^$
# If so, create the default language (=es):
RewriteRule (.*) - [QSA,E=LANGUAGE:es]
# WHATEVER THE LANGUAGE ADD IT TO THE URI:
RewriteRule (.*) $1?language=%{ENV:LANGUAGE} [QSA]
Так что теперь представьте, что кто-то печатает:
Все указывают на один и тот же кусок кода и вам просто нужно обработать это в файле Php
: посмотрите на переменную $_GET['language']
и прочитайте хороший файл "перевода".
Это всего лишь совет, чтобы помочьВы делаете меньше работы для очень надежного приложения!
Надеюсь, это поможет!
[Редактировать 1]
Вот последние вещи, которые вы можете поместить в файл .htaccess
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(us|fr|pt)\.mydomain\.com$
RewriteRule (.*) - [QSA,E=LANGUAGE:%1]
RewriteCond %{ENV:LANGUAGE} ^$
RewriteRule (.*) - [QSA,E=LANGUAGE:es]
RewriteRule (.*) $1?language=%{ENV:LANGUAGE} [QSA]
</IfModule>
[Редактировать 2]
Мои последние правила делают это:
Не меняетпуть вообще .
Этот меняет путь:
RewriteCond %{HTTP_HOST} ^(us|fr|pt)\.mydomain\.com$
RewriteRule (.*) - [QSA,E=LANGUAGE:%1]
RewriteCond %{ENV:LANGUAGE} ^$
RewriteRule (.*) - [QSA,E=LANGUAGE:es]
RewriteCond %{ENV:LANGUAGE} ^es$
RewriteRule ^/?$ /public/www/index.php
Так что это должно дать: