2017-03-07 12 views
1

私の.htaccessファイルをデフォルトでhttpsにリダイレクトしたいのですが、言語ディレクトリも使用したいと思います。.htaccess言語でのリダイレクトの問題

>https://example.org/en/Home

  • www.example.org - - >https://example.org/en/Home
  • example.org/test?test=test - >https://example.org/en/test?test=test
    1. http://example.org:私は、次のリダイレクトをしたいですenはブラウザのデフォルト言語、または設定されている場合はCookie 'Language'である必要があります。クッキーは、ブラウザのデフォルト

      上でランク付けする必要がありますので、どのような私の.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

    いいえ、最初のページに読み込まれるデフォルトはブラウザのデフォルト言語になります。しかし、後のvisiteでクッキーが設定されます。あなたに他の選択肢がある場合は、 –

    答えて

    0

    以下の条件で試してみてください、私は今のところみましませんでした。

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

    ご連絡ありがとうございます。ただし、クッキー言語が設定されている場合は/ en /をクッキー値に置き換えてください。 deまたはesなど。 Cookieが設定されていない場合、enはブラウザのデフォルトコードにする必要があります –

    関連する問題