.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, поэтому я не могу прочитать страницу.
Ответы
Ответ 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 в качестве страницы.