同じホスティングサーバを指す2つの異なるドメイン(www.site1.comとwww.site2.comとしましょう)があります。htaccessはホスト名またはドメイン名に基づいて書き換えます
イタリア語のコンテンツには最初のものを使用し、英語のコンテンツには2番目のものを使用したいので、2つの異なるドメイン名が必要です。言語の場合を除き、内容は同じですが、のドメインはと異なります。私は通常、同じを使用し/?lang=en
に/?lang=it
www.site2.com
に
www.site1.com
:だから、私は私がから翻訳できますルールを記述したいと思います多くの異なる言語のドメイン名は
www.site.com/it/
からに書き換えられます(もちろん、透明な書き換え - ユーザーは別のURLを見ません)。私は異なるドメインを使用して同じことを達成したいと思いますが、私は何かを理解できません...私は何時間もそれに取り組んできました。
通常私はこれを使用します。
RewriteCond %{REQUEST_URI} /([a-z]{2}) RewriteRule ^([a-z]{2})[/]*$ /index.php?lang=$1 [NC,QSA]
私はこの1つの仕事を得ることができない、異なるドメインを使用する:
RewriteCond %{HTTP_HOST} ^www.site1\.com [NC] RewriteCond %{REQUEST_URI} !^/index.php?lang=it RewriteRule ^(.*)$ /index.php?lang=it [NC,QSA] RewriteCond %{HTTP_HOST} ^www.site2\.com [NC] RewriteCond %{REQUEST_URI} !^/index.php?lang=en RewriteRule ^(.*)$ /index.php?lang=en [NC,QSA]
[.htaccess RewriteRule:同じサーバーとディレクトリを使用する2つのドメイン](http://stackoverflow.com/questions/6972413/htaccess-rewriterule-two-domains-using-same-server-and-directory)の複製が可能です。 –
この設定はどうなりますか? 2番目のRewriteCondを削除すると( '^/index.php?lang = it'は決して一致しません)、REQUEST_URIはクエリパラメータを公開せず、代わりに%{QUERY_STRING}をチェックしますか? – nikoshr
私は後者の灰色のブロックで多くのさまざまな "バージョン"のルールを試しました...私はいつもHTTP 500エラーまたは空の$ _GETを取得します。私は、第2の条件 "RewriteCond%{REQUEST_URI}!^/index.php?lang = it"の有無にかかわらず、他の試練の中で意味します。 –