0

plesk ベースのシステムを使用しており、最近ドメイン名を変更しました。古いドメインに着信するすべてのリクエストを新しいドメインにリダイレクトしたいと考えています。同様の方法で尋ねられる質問はたくさんありますが、私の質問は少し異なります。すべてのサブドメインが新しいドメインの同じサブドメインにルーティングされるようにしたいと思います。docroot に汎用の htaccess を設定しましたが、何らかの理由ですべてのサブドメインにも適用されています。

RewriteCond %{HTTP_HOST} !newdomain.com$ [NC]
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]

サブドメインも適切にルーティングされるように、これをより一般的にするにはどうすればよいですか? ボーナス ポイントとして、https リクエストを https に、http から http にルーティングするにはどうすればよいですか。

ルールが最初の URL を望ましくない 2 番目の URL に変換することを追加したいと思います。

http://SUBDOMAIN.olddomain.com/somepath/somefile.php
http://newdomain.com/subdomains/SUBDOMAIN/httpdocs/somepath/somefile.php

適切な変換により、次の URL が作成されます。

http://SUBDOMAIN.newdomain.com/somepath/somefile.php

最後に、これはワイルドカード サブドメインで機能するはずです。

ありがとうございます!

4

1 に答える 1

0

試す:

# ignore "www."
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.olddomain.com$ [NC]
RewriteRule ^(.*)$ http://%1.newdomain.com/$1 [L,R=301]

すでに持っているルールのにこれが必要です。

また、質問を編集したので、新しいサイトで一般的にサブドメインを処理するための追加の内部書き換えが必要です。これはリダイレクトとは関係ありません。これは、301 リダイレクトの範囲外のまったく新しい機能です。サブドメインの内部ルーティングを処理するには、特別なルールが必要になります。

RewriteCond %{REQUEST_URI} !^/subdomains/
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.newdomain.com$ [NC]
RewriteRule ^(.*)$ /subdomains/%1/httpdocs/$1 [L]
于 2012-09-17T19:53:31.443 に答える