2016-05-27 5 views
1

に応じて、私は言語にdeppending異なるドメイン内で動作、多言語ウェブサイトを持っています。すべてのドメインは同じフォントコードを共有しており、ウェブサイト(Drupal)はパスを使用して言語を決定します。 は今、私は、各ドメインには独自の言語にリダイレクトされるように設定したので、私は持っている:変更ドメインURLパス

  • www.example.com - >
  • www.example www.example.com/en。 ES - > www.example.es/es
  • www.example.ru - > www.example.ru/ru

この方法では、ユーザーがウェブサイトに入ったときに、CMSがに言語を切り替えます1つはそのドメインに対応します。

私の問題は、誰かがウェブサイト上の言語スイッチャーを使用する場合、それはその言語に対応するコンテンツを表示するために、すべてのクエリパラメータを変更しますが、私はwww.example.com/en/somethingとスイッチにいる場合は、そのドメインを変化しないことですスペイン語に私はwww.example.com/es/algoで終わります。

私は(常に/en/es/ru直後ドメイン名のように書き込まれます)、言語と、可能な場合、クエリパラメータを保つに応じても変更するドメインデ必要があると思います。

私は(テストとして、ロシア語のみ)htaccessファイルでこのコードを書いたが、私はそれは何もしませんので、それは完全に間違っている可能性があり恐れる:

RewriteCond %{REQUEST_URI} ^/ru$1 
    RewriteRule ^$1 http://www.example.ru/ru$1 [L,R=301] 

が何かアドバイスは非常に有用ましでしょう。

+0

Wherにリダイレクトして、その結果、例えば、ユーザがwww.example.ru/en/somethingを入力した場合、この方法は、パス内の/enは、ホスト名で.ruよりも重要になることに注意してくださいあなたはコードを手に入れましたか?シンタックスエラーが多すぎますが、$ 1はcondパターンとrewriteパターンでは許可されていません。 – starkeen

+0

うん、私はhtaccessの構文知識がほとんど存在しないことを恐れ、私は研究室のその犬のようだ(私は何をやっているのか分からない)。 –

+0

デュープ:http://stackoverflow.com/questions/37477953/rewritecond-and-rewriterule-to-redirect-depending-on-the-domain – starkeen

答えて

2

があなたの前のルールの前にこれらを置く:

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

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

... 

は、このようにwww.example.com/en/something

+0

これはまさに私が必要とするものです。/ langパラメータは、対応するドメインへのリダイレクトを強制するためのものです。 –

+0

一つです。それはすべてのページで素晴らしい動作しますが、ホームページにリダイレクトされません、あなたはこれをcaousingすることができるの任意のアイデアがありますか? –

+0

正確な例が必要です。アドレスバーには何を入力しますか? –

0

mod_rewriteは、正規表現を使用しています。 $1マッチ部分に「定義された」する必要がグループにreferes(括弧を使用し、「すべてに一致」演算子として.):

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] 
RewriteRule ^ru(.*)$ http://www.example.ru/$1 [L,R=301] 
+0

ホームページでうまく動作します。www.example.com/ruに移動するとwww.example.ru/ruにリダイレクトされますが、私がwww.example.com/en/somethingのような別のページにいる場合私はwww.example.ru//somethingにリダイレクトされます(言語パラメータなし)。 –

関連する問題