1

複数の TLD (domainX.com、domainY.net、...) が同じフォルダーを指しています。このフォルダに .htaccess ファイルを追加して、domainY.com 以外のすべての www および www 以外の URL を domainY.com にリダイレクトしたいと考えています。

ただし、ここで 1 つのひねりがあります。私はいくつかのサブドメインを持っています: alfa.domainY.com と beta.domainY.com と gamma.domainY.com のセットアップで、すべてのテストで domainY.com にリダイレクトし続けます。

誰かがここで成功したコードを教えてくれる可能性はありますか?

編集: いくつか追加することもでき#Commentsます。ここでのほとんどの回答にはそれがないことに気付きました。人々が何をしているのかわからないため、一部を再利用できないことを意味すると思います。後で自分で追加することもできます。

4

1 に答える 1

1

ドキュメント ルートの htaccess ファイルに次のルールを追加してみてください。

RewriteEngine On
RewriteCond %{HTTP_HOST} !domainY\.net$ [NC]
RewriteRule ^(.*)$ http://domainY.net/$1 [L,R=301]

ホストに一致する式は、すべてのalpha.domainY.netに対して失敗します。これは、TLD (.net) およびドメイン (domainY) に対してのみ一致するためです。

最初の行は、書き換えエンジンをオンにします。

2 行目の条件は、直後のルールに適用される true/false 式です。この場合、リクエストのHost:ヘッダーをチェックし、それが で終わる domainY.net場合、条件は!in front のために失敗します。

3 行目はルールです。URI は、基本的にすべてに一致するパターン^(.*)$と照合するために使用され、括弧でキャプチャされます。次に、次のビットがターゲットです。ルールが一致する場合は、パターンがすべてに一致するため、ターゲットが適用されます。この場合、ブラウザーをリダイレクトしdomainY.net、正規表現 backreference を介して同じ URI を渡します$1

于 2013-08-30T20:47:55.067 に答える