1

英語とスペイン語の両方をサポートするサイトを扱っていますが、言語固有のサブドメインへのすべてのリクエストをメインドメイン(en.mysite.comとes.mysite.com)にリダイレクトする方法を知りたいです。 mysite.com)。

サイト全体がPHPでプログラムされており、およびGETパラメーターindex.phpを処理し、それに応じてデータを表示するメインスクリプトがあります。languagesection

ここで、mysite.comのルートにある.htaccessファイルで次のことを実行しようとしました。それは私がやろうとしていることを明らかにしていると思います:

RewriteEngine On

# English redirects

RewriteRule ^en.mysite.com$ index.php?language=English&section=Main
RewriteRule ^en.mysite.com/store$ index.php?language=English&section=Store
RewriteRule ^en.mysite.com/create_account$ index.php?language=English&section=CreateAcc

# Spanish redirects

RewriteRule ^es.mysite.com$ index.php?language=Spanish&section=Feed
RewriteRule ^es.mysite.com/comprar$ index.php?language=Spanish&section=Store
RewriteRule ^es.mysite.com/crear_cuenta$ index.php?language=Spanish&section=CreateAcc

しかし、これは機能しません。誰かが私がここで間違っていることを教えてもらえますか?

4

1 に答える 1

0

RewriteRuleホスト名はURIとのみ一致するため、一致の一部としてホスト名を含めることはできません。各ルールRewriteCondのホスト名と一致する個別のルールを使用する必要があります。

RewriteCond %{HTTP_HOST} ^en.mysite.com$ [NC]
RewriteRule ^$ /index.php?language=English&section=Main

RewriteCond %{HTTP_HOST} ^en.mysite.com$ [NC]
RewriteRule ^store$ /index.php?language=English&section=Store

RewriteCond %{HTTP_HOST} ^en.mysite.com$ [NC]
RewriteRule ^create_account$ /index.php?language=English&section=CreateAcc

その後、スペイン語は書き直します:

RewriteCond %{HTTP_HOST} ^es.mysite.com$ [NC]
RewriteRule ^$ /index.php?language=English&section=Feed

RewriteCond %{HTTP_HOST} ^es.mysite.com$ [NC]
RewriteRule ^comprar$ /index.php?language=English&section=Store

RewriteCond %{HTTP_HOST} ^es.mysite.com$ [NC]
RewriteRule ^crear_cuenta$ /index.php?language=English&section=CreateAcc
于 2012-07-24T04:06:44.820 に答える