VirtualHost/htacess: サブドメインを URL パラメータにポイントするにはどうすればよいですか?

VirtualHost/htacess: サブドメインを URL パラメータにポイントするにはどうすればよいですか?

多言語の Web サイトを作成する必要があります。この目的を達成するには、自分の設定で、言語を表すサブドメインをドメインの最初の URL パラメータ (GET 変数) にポイントする必要がありvirtualhostますhtaccess

スキームは次のとおりです。

example.com => / 

([a-z-]+).example.com => /?lang=$1

([a-z-]+).example.com/directory1/ => /directory1/?lang=$1

([a-z-]+).example.com/directory1/page.html => /directory1/page.html?lang=$1

など...ディレクトリとページの数に関係なく。

したがって、このスキームによれば、

en-en.example.com matches /?lang=en-en

en-en.example.com/directory1/ matches /directory1/?lang=en-en

en-en.example.com/directory1/page.html matches /directory1/page.html?lang=en-en

など...ディレクトリとページの数に関係なく。

では、Apache の設定でこれをどのように実行できるのでしょうか?

答え1

.htaccess または仮想ホスト構成ファイルに次のような記述をすればうまくいくと思います。これは 2 文字のサブドメイン名にのみ一致します。最初の正規表現を適宜調整してください... 例: ([az-]+)

RewriteEngine On
RewriteCond %{HTTP_HOST} "^([a-z]{2})\.example\.com$"
RewriteRule "^(.*)$" http://example.com$1?lang=%1

関連情報