複数のドメインをカバーするルールを作成するのは非常に簡単です。あなたが望むものを達成するには、次のようなことができます:
RewriteCond %{HTTP_HOST} ^(www\.)?example\.(de|fr|co\.uk)$
RewriteRule .* http://www.example.com/?loc=%2 [R]
要求に応じてそれを取りexample.de
、書き直し、 、 、およびに対しても機能します。ただし、バージョンが として書き換えられることに注意してください。これは、必要なものではありません。また、新しいドメイン用に変更する必要があります。example.com/~loc=de
.fr
.co.uk
.co.uk
example.com/~loc=co.uk
したがって、これはもう少し一般的なソリューションですが、必要なものを達成する必要があります。
RewriteCond %{HTTP_HOST} ^(www\.)?example\.(co\.)?(.*)$
RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$
RewriteRule .* http://example.com/?loc=%3 [R]
少し説明します:
1 つ目は、、 、などのRewriteCond
任意のドメインに一致します。example
example.co.uk
www.example.de
www.example.xxx
2 番目は、HTTP_HOSTがまたはでないRewriteCond
ことを確認します。 example.com
www.example.com
最後に、RewriteRule
これら 2 つのルールに一致するものをすべて書き換え、ドメインの最後の部分をパラメーターとして末尾に貼り付けます。
http://www.example.co.uk/
->http://example.com/?loc=uk
http://www.example.de/
->http://example.com/?loc=de
http://www.example.xxx/
->http://example.com/?loc=xxx
http://www.example.com/
リダイレクトしません。
上記の解決策では、ユーザーが に移動したhttp://www.example.de/some/path/index.php
場合、パスはリダイレクトされないことに注意してください。この機能が必要な場合は、リダイレクトにパスを含める必要があります。
RewriteRule (.*) http://example.com/$1?loc=%3 [R]