Подтвердить что ты не робот

.htaccess страница и ошибка lang

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

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

например: 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 для страницы, это значение: index.php, поэтому я не могу прочитать страницу.

4b9b3361

Ответ 1

Здесь вы должны использовать:

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 в качестве страницы.