2016-11-29 6 views
1

URL内の言語コードの有無に応じて、私のhtaccessでリダイレクトを行う必要があります。htaccess言語条件リダイレクト

URL構造は、あなたのよう

/ /セクション/サブセクションエン、そして(任意の正規サイトのような)特定のページ

domain.com/ を言語コードに続くドメインで開始しなければなりません見ることができる次のように、/EN/言語コードであるが、異なる言語コードが存在し得る[/ EN/ES/IT /]

そこでルールがなければならない:

  • 言語コードが存在している必要があり、それが長い2つの文字でなければなりません
  • このルールが一致しない場合は、ブラウザがデフォルトのlang「/は/ EN」私の心の中で

    はそれがあるにリダイレクトする必要があります

唯一の私の心の中でこのような何か...;)事前に

RewriteCond %{REQUEST_URI} !^/([az]){2}/(.*)$ 
RewriteRule ^(.*)$ /en/$1 [L] 

おかげ

答えて

0

あなたの正規表現はないと思える、あなたはでこれを行うことができます自体:@anubhavaの助けを借りて

​​
+0

ありがとう@anubhava。私は正規表現が間違っていることを知っています、それを理解することだけでした。あなたのアプローチは良いスタートのようですが、より多くの言語コードが存在するので、それは動的であることが良いでしょう。したがって、それらをすべて配置する必要はありません。だから、私は[az] {2}のようなものを考えていたのです。再度、感謝します! – Ivano

+0

ok今更新ルールを試してください。 – anubhava

+0

最後に、あなたのアプローチは成功しましたが、2つのものを追加しなければなりませんでした。 - 301リダイレクトフラグ - リダイレクトされるべきでないすべてのファイルを避けるための条件 @anubhavaあなたの答えを正しいものとしてマークし、最終コードを追加します。必要に応じて、最終的なコードで回答を更新することができますので、他の人には正しいままです。 ありがとう!!!! – Ivano

0

は、最終的には、このコードは魅力のように働きました。 ありがとうございます!

RewriteCond %{REQUEST_URI} !^(.+)\.(js|css|png|jpe?g|gif|eot|woff2?|ttf|otf|svg|json|txt|xml|html?|htc|ico|m4a|m4v|manifest|mp4|mp3|oex|oga|ogg|ogv|otf|pdf|swf|fla|safariextz|svgz?|vcf|webapp|webm|webp|xpi)$ [NC] 
RewriteRule !^[a-z]{2}/ /en%{REQUEST_URI} [R=301,L]