Страница .htaccess и ошибка lang - PullRequest
17 голосов
/ 23 декабря 2011

Я пытаюсь посмотреть на стек, но не могу найти ответ.

, поэтому мне нужно выяснить, какой домен, каким поддоменом является пользователь, и какую страницу загружает.

Например: en.domain.com/contactus

это должно загрузить английскую страницу с нами.

что у меня есть:

RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$ [NC]
RewriteRule ^(.*)$ index.php?lang=en&page=$1 [L,NC]

RewriteCond %{HTTP_HOST} ^en.domain.com$ [NC]
RewriteRule ^(.*)$ index.php?lang=en&page=$1 [L,NC]
RewriteCond %{HTTP_HOST} ^fr.domain.com$ [NC]
RewriteRule ^(.*)$ index.php?lang=fr&page=$1 [L,NC]
#etc...

но по какой-то причине, когда я повторяю запрос get for page, значение: index.php, поэтому я не могу прочитать страницу.

1 Ответ

18 голосов
/ 23 декабря 2011

Вот что вы должны использовать:

RewriteEngine On
RewriteBase /

SetEnvIf Host ^www\. lang=en
SetEnvIf Host ^en\. lang=en
SetEnvIf Host ^fr\. lang=fr

RewriteCond %{REQUEST_URI} !\.(css|png|gif|jpe?g|js)$ [NC]
RewriteRule ^([a-z0-9_\-]+)/?$ index.php?lang=%{ENV:lang}&page=$1 [L,NC,QSA]

%{ENV:lang} будет считано из SetEnvIf (из субдомена) и задает правильный язык, который вы получите от $_GET['lang']; (в вашем коде PHP - при условии, что это PHP)

Таким образом, любой из поддоменов будет динамически загружаться без повторного создания правил для поддоменов. Я также добавил правило, запрещающее загрузку изображений или JavaScript как страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...