.htaccess重定向语言问题

时间:2017-03-07 12:56:54

标签: php apache .htaccess redirect

我想默认将.htaccess文件重定向到https,但我也想使用语言目录。

e.g。我想要以下重定向:

  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
  4. 注意,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/
    

1 个答案:

答案 0 :(得分:0)

尝试以下条件,我现在没有尝试过。

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