Thursday, May 17, 2012

.htaccess page and lang error


i try to look on stackoverflow but i can't find my answer.



so i need to find out which domain which sub-domain the user is and which page is loading.




eg: en.domain.com/contactus




this should load the english contact us page.



what i have is:




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...



but for some reason when i echo the get for page, the value is : index.php so i cannot read the page.


Source: Tips4all

1 comment:

  1. Here's what you should use:

    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]


    The %{ENV:lang} will be read from the SetEnvIf (from the sub-domain) and set the correct language you will get from $_GET['lang']; (in your PHP code - assuming it's PHP)

    This way, any of the sub-domain will be dynamically loaded without creating rules over and over for sub-domain. I also added a rule that prevent loading images or JavaScript as page.

    ReplyDelete