19

ユーザーが独自のドメイン名を使用して Web サービスにアクセスできるようにしたいと考えています。

たとえば、example.com/users/david にプロファイルを持つユーザーがいる場合、david が exampledavid.com を使用して自分のプロファイル ページにアクセスできるようにするにはどうすればよいですか。

ユーザーのアドレス バーに example.com が表示されるのではなく、david が exampledavid.com を表示するようにします。

4

3 に答える 3

4

この問題は、URL の書き換えと HTTP ヘッダーの操作またはリバース プロキシで解決できます。

  • Apache http サーバーの場合: ProxyPassReverseディレクティブを使用します。

ディレクティブ ProxyPassReverse により、Apache は HTTP リダイレクト応答の Location ヘッダーの URL を調整できます。たとえば、Apache をリバース プロキシとして使用して、リバース プロキシの背後にあるバックエンド サーバーの HTTP リダイレクトが原因でリバース プロキシをバイパスしないようにする場合、これは不可欠です。

ローカル サーバーのアドレスがhttp://wibble.org/であるとします。それから

ProxyPass /mirror/foo/ http://foo.com/
ProxyPassReverse /mirror/foo/ http://foo.com/

http://wibble.org/mirror/foo/barへのローカル リクエスト が内部的にhttp://foo.com/barへのプロキシ リクエストに変換されるだけではありません(ProxyPass がここで提供する機能)。サーバー foo.com が送信するリダイレクトも処理します。http://foo.com/bar がhttp://foo.com/quuxリダイレクトされると、 Apache はこれを http://wibble.org/mirrorに調整します。 HTTP リダイレクト応答をクライアントに転送する前に、/foo/quuxを追加します。

  • MS(R) IISの場合、 Re-Writeモジュールを使用します。

Web アプリケーションの URL を簡単に置き換えて、ユーザーと検索エンジンに適した結果を生成します。URL Rewrite を使用すると、Web 管理者は、応答 HTML で Web アプリケーションによって生成された URL を、よりユーザー フレンドリーで検索エンジン フレンドリーな URL に簡単に置き換えることができます。リンクは、リバース プロキシの背後にある Web アプリケーションによって生成された HTML マークアップで変更できます。URL 書き換えは、HTTP 要求と応答ヘッダー、および IIS サーバー変数で動作する送信書き換え規則を使用して、送信応答コンテンツとヘッダーの書き換えを容易にします。

さらに、すべてのリクエストを example.comに渡すように、exampledavid(dot)com が DNS プロバイダーでセットアップされていることを確認する必要があります。

DNS レコードのサンプル:

NAME                    TYPE   VALUE
--------------------------------------------------
exampleXYZ.com.         CNAME  example.com.
example.com.            A      192.0.2.23

参照:

  1. https://en.wikipedia.org/wiki/CNAME_record

  2. http://www.akadia.com/services/apache_redirect.html

  3. http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

  4. http://www.iis.net/downloads/microsoft/url-rewrite

于 2016-02-08T18:39:20.483 に答える