2017-03-07 80 views
1

我想讓我的.htaccess文件默認重定向到https,但我也想使用語言目錄。.htaccess重定向問題與語言

例如我想下面的重定向:

  1. http://example.org - >https://example.org/en/Home
  2. www.example.org - >https://example.org/en/Home
  3. example.org/test?test=test - >https://example.org/en/test?test=test

請注意,設置時,en應該是瀏覽器的默認語言或cookie'語言'。該Cookie應該職級以上的瀏覽器的默認

那麼,什麼我的.htaccess文件看起來像此刻是:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /$1 [L,R=301] 

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

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^/?$ "/Home" [R=301,L] 
RewriteRule ^([a-zA-Z]{2})/?$ /$1/Home [R=301,QSA,L] 
RewriteRule ^([a-zA-Z]{2})/(.+)?/?$ $2/?Language=$1 [L,QSA] 

RewriteCond %{HTTP_USER_AGENT} libwww-perl.* 
RewriteRule .* ? [F,L,QSA] 

ErrorDocument 404 /404/ 
ErrorDocument 500 /500/ 
+0

您是否正在使用php或mod-rewrite設置lang cookie? – starkeen

+0

不,首頁加載默認將會是瀏覽器的默認語言。但是,在稍後訪問時,cookie會被設置。如果您有其他選擇,請通知我 –

回答

0

下面條件的嘗試,我沒有嘗試過現在。

RewriteCond %{HTTP_HOST} ^www [OR] 
RewriteRule %{REQUEST_URI} ^(.+?)$ 
RewriteRule^https://example.org/en%{REQUEST_URI} [R=301,L] 
+0

感謝您的回覆,但是當設置Cookie語言時,我希望將/ zh /替換爲cookie值,例如, de或es或類似的。當cookie未設置時,en應該是瀏覽器的默認代碼 –