2010-04-06 23 views
0

我有一個多語言網站,使用根目錄('/ en'爲英語和'/西班牙語爲西班牙語)的子目錄爲每種特定語言。每個重定向將一個get變量附加到URL中,並使用代理的「P」標誌隱藏它。西甲子我現在的htaccess文件是:兩個RewriteRules與www重定向

Options +FollowSymlinks 
RewriteEngine on 
RewriteOptions MaxRedirects=10 
RewriteBase/
RewriteRule ^(.*)\.html$ $1.php 
RewriteRule ^(.*)$ http://www.domain.com/$1?l=es [P,R=301,L] 

的問題是,我也想,如果有人離開的「WWW」添加到域。代理重定向不顯示'www。'是否有可能在最後一個將附加www之前放置一個rewriterule,然後仍然處理最後一個?

回答

1

真的有必要,你的www.重寫是通過代理方法解決的?如果www.丟失,我會推薦一個常規的301重定向。映射到相同應用程序的許多URL只會導致會話/ cookie問題(請參閱no-www)。

Options +FollowSymlinks 
RewriteEngine on 
RewriteOptions MaxRedirects=10 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

RewriteBase/
RewriteRule ^(.*)\.html$ $1.php 
RewriteRule ^(.*)$ http://www.domain.com/$1?l=es [P,R=301,L]