domain.com
にリダイレクトされると思いますsome.otherdomain.com
。some.otherdomain.com
サイトの訪問者に正確なURLを表示したくありません。URLをマスクして、次のように表示する必要がありますdomain.com
。.htaccess / javascript?
5 に答える
ドメインを非表示にする最良の方法は、リバースプロキシ(apache、nginx、...)を使用し、それに書き換えルールを提供することです。
とが物理domain.com
的some.otherdomain.com
に異なる2つのサーバー上にあり、いずれのサーバーのDNS情報も変更できない場合は、にリバースプロキシをインストールする必要がありますdomain.com
。これに使用できますmod_proxy
。ドキュメントは次の場所にあります。
http://httpd.apache.org/docs/2.0/mod/mod_proxy.html
次の情報は、注意を払う必要があるものです。
対照的に、リバースプロキシは、通常のWebサーバーと同じようにクライアントに表示されます。クライアントで特別な設定は必要ありません。クライアントは、リバースプロキシの名前空間のコンテンツに対して通常の要求を行います。次に、リバースプロキシはそれらの要求の送信先を決定し、それ自体が発信元であるかのようにコンテンツを返します。
ドキュメントに予約プロキシの例がありますが、次のようなものが必要になります。
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://some.otherdomain.com/
ProxyPassReverse / http://some.otherdomain.com/
基本的に、ドメインがプロキシされるすべてのリクエストsome.otherdomain.com
-ローカルウェブサーバーはリクエストを転送し、からデータをバッファリングしてからotherdomain.com
、ローカルデータであるかのように同じデータを書き戻します。お役に立てれば!
私は常に、サーバー構成(Apacheまたは使用されているもの)でmod_rewrite(または同様のもの)を介してそのようなことを行うのが最善の方法だと思います
domain.comのApacheWebサーバーで、以下を有効にする必要があります。
- mod_proxy
- mod_rewrite
- .htaccess
これらの要件が完了したら、次のDOCUMENT_ROOTの下の.htaccessにこのコードを配置しますdomain.com
。
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule ^ http://some.otherdomain.com%{REQUEST_URI} [L,P]
ここで重要なフラグはP
(プロキシ)です。これは基本的に、ブラウザに表示せずにdomain.com
すべてのリクエストをプロキシします。some.otherdomain.com
このフラグの詳細については、http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriteruleを参照してください。
より簡単な方法は、domain.comにiframeを含むページを設定し、iframeのソースをsome.otherdomain.comに設定することです。ただし、ユーザーはページのソースを表示して、iframeがsome.otherdomain.comを指していることを確認できます。
<iframe src="http://some.otherdomain.com/">...
もう1つのオプションは、このスレッドに示されているように、.htaccessでmod_rewriteを使用することです。