2

名前をマスキングするだけで、長い間ドメインを所有しています。

http://mydomain.com

その後、いくつかのプロジェクトでこのドメインのサブドメインを使用し始めました。

http://subdomain.mydomain.com

それらのプロジェクトは成長し、今では次のような構造になっています

http://subdomain.mydomain.com/project1
http://subdomain.mydomain.com/project2
http://subdomain.mydomain.com/project3/subproject1
http://subdomain.mydomain.com/project3/subproject2
http://subdomain.mydomain.com/project3/subproject3
http://subdomain.mydomain.com/project4
....
etc.

今、私は何も移動しない予定の新しいドメイン (shortdomain.com) を購入しましたが、リダイレクト経由ですべてにアクセスできるようにする必要があるため、すべてが次のようになります。

http://shortdomain.com
http://shortdomain.com/project1
http://shortdomain.com/project2
http://shortdomain.com/project3/subproject1
http://shortdomain.com/project3/subproject2
http://shortdomain.com/project3/subproject3
http://shortdomain.com/project4
...
etc.

したがって、基本的には 2 つのことを行う必要があります。1. 誰かが古いドメインにアクセスした場合は、新しい命名構造にリダイレクトします。つまり、誰かがロードhttp://subdomain.mydomain.com/project2した場合、リダイレクトする必要がありますhttp://shortdomain.com/project2

  1. ユーザーがこれにロード/リダイレクトされたとき、http://shortdomain.com/project2実際に存在するコンテンツをロードする必要がありますhttp://subdomain.mydomain.com/project2

そのため、プロジェクト、コード、その他のデータの GB を手動で移行することはしません。これは、スマートリダイレクトのみで実現できると思います。

参考までに: 1. 両方のドメインの DNS を完全に制御しています 2. ホストゲーターでホストされています 3. 最初のドメインで Cloudflare を使用しており、引き続き使用したいと考えています

4

2 に答える 2

0

これは、スマートリダイレクトのみで実現できると思います。

いいえ、リダイレクトはブラウザのロケーション バーの内容を変更します。にリダイレクトするとshortdomain.com、リクエストは に送信されshortdomain.com、もう関係ありsubdomain.mydomain.comません。にリダイレクトするsubdomain.mydomain.comと、ブラウザのロケーション バーも変更されます。

本当にやりたいことは、オンになっshortdomain.comているのと同じサーバーとドキュメント ルートを指すことsubdomain.mydomain.comです。次に、これを使用してリダイレクトします(htaccessファイルまたはサーバー構成のいずれかで):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://shortdomain.com/$1 [L,R=301]

なんらかのばかげた理由で、shortdomain.comDNS をサービスを提供している同じ Web サーバーに向けることsubdomain.mydomain.comができない場合、またはホストへの要求を受け入れるようにその Web サーバーをセットアップできない場合はshortdomain.com、プロキシ サーバーをセットアップする必要があります。そして、それは次のように機能します:

2 つの Web サーバー、サーバー A (ホスト subdomain.domain.com) およびサーバー B (ホスト shortdomain.com)

  1. 誰かがリクエストhttp://subdomain.mydomain.com/project3/subproject1
  2. サーバーAはリクエストを取得し、ブラウザをリダイレクトしますhttp://shortdomain.com/project3/subproject1
  3. ブラウザのロケーションバーが新しい場所に変わる
  4. サーバー B がリクエストを取得し、そのリクエストをサーバー A に逆プロキシします。
  5. サーバー A は再びリクエストを受け取りますが、それがプロキシであることを認識し、リダイレクトする代わりにページを提供する必要があります

ご覧のとおり、これは恐ろしく非効率的なソリューションです。また、ホスティング サービスでプロキシ サーバーの設定が許可されていない可能性も高くなります。

于 2013-10-02T19:51:26.690 に答える
0

I have full DNS control of both the domains

完全に制御できればmod_proxy、 の Apache Web サーバーでも有効にできると思いますshortdomain.comそれが終わったら、このようにすべてを設定します。

subdomain.mydomain.com有効にして、このmod_rewriteルールをApache configORに配置しDOCUMENT_ROOT/.htaccessます。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.mydomain\.com$ [NC]
RewriteRule ^ http://shortdomain.com%{REQUEST_URI} [L,R=301]

shortdomain.comenablemod_proxyで、このmod_rewriteルールをApache configORに配置しDOCUMENT_ROOT/.htaccessます。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^shortdomain\.com$ [NC]
RewriteRule ^ http://subdomain.mydomain.com%{REQUEST_URI} [L,P]
于 2013-10-02T20:08:07.683 に答える