mod_rewriteを使用して特定のサブドメインをリダイレクトして別のドメインを使用する方法について質問があります。私は、私のドメイン名ごとに別々の書き換えルールを作成する必要なしにこれを行う最短の方法を探しています。私は多くの新しいドメイン名(およそ20-30のドメイン合計)を追加します。複数のサブドメインを別のドメイン名にリダイレクト
私の主なドメイン名がexample.comで、そのドメイン名をすべて使いたいとします。したがって、他のドメインが使用されている場合は、サブドメイン接頭辞とURLパスを保持したままメインドメインに自動的にリダイレクトされます。
例:
test.example.org => test.example.com
test2.example.co.uk => test2.example.com
test3.example.net/hello/world。 PHP => test3.example.com/hello/world.php
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.([a-zA-Z]+)\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1\.example.com/$1 [R=301,L]
上記正しくまたはそれが適切な構文であれば動作する場合、私はわかりませんよ。しかし、基本的には、サブドメインの接頭辞、ドメイン名、およびTLD(.org、.info、.biz、.co.uk、.netなど)と一致させたいと考えています。私は無限のリダイレクトループを防ぐために最初に正しいメインドメイン(example.com)でないことを確認する必要があると想定します。
また、HTTPSがオンかオフかを確認し、リダイレクトを正しく設定することは可能でしょうか?そうでない場合は、常にHTTPSをONに設定することができます。
ご迷惑をおかけして申し訳ありませんが、私はドメインのすべてを.htaccessにプログラムする必要なく、初めてこの権利を得ることを確認したいと思います。
ありがとうございます! :)
この例を使用しますが、それは作業を行います。私はちょうどそれが必要に応じて正確に動作するように、いくつかのさらなるテストを行う必要があります。詳しい対応をありがとう! –
最初のルールがどのように動作するか理解していますか?文字列がonまたはoffであるので、 '^ ..(s?)'が%1 = "s"または ""になり、env変数PROTOが正しく設定されます。 Cond2Aは '* .example.com'のループを防ぎ、cond2Bファイルはサブドメインを上回ります。 Rule2Bはそれをすべてまとめます。それがうまくいくとダニはうまくいくでしょう:-) – TerryE
それは完璧に動作し、私はそのコンセプトを理解しています。私が抱えている1つの問題は、誰かがexample.orgに行ったと言います。彼らが移動するまでexample.orgに滞在します。私は他のトリックを試みましたが、メインの "example.com"に変更することはできません。 –