web-dev-qa-db-ja.com

DNSを使用して、あるドメインのサブフォルダーを設定して別のドメインにリダイレクトする方法

1つのドメインで2番目のドメインにリダイレクトするためにサブフォルダーが必要な状況があるため、 http://domain1.com/domain2/http://にリダイレクトしますdomain2.com

Domain1.comのルートフォルダーをそのままにしておく必要があります。サブフォルダーだけがリダイレクトする必要があります。

クロスドメインセキュリティに違反することなく、ドメイン2のPHPおよびフォントファイルにアクセスする必要があるため、このようにする必要があります。 DNSを使用してこれを行う方法はありますか?

サブドメインを使用してこれを行う手順のみを見つけましたが、クロスドメインPHPアクセスでは機能しないと考えています。

2
James Morrison

これは間違いなくDNSではできません。

解決したい本当の質問は "クロスドメインPHPとフォントをどのように許可しますか?"


クロスドメインPHPおよびフォントファイル(おそらくこれで十分です)を有効にするには、「Access-Control-Allow-Origin」ヘッダーをdomain2の構成に追加します。

Apache:

Header add Access-Control-Allow-Origin "http://domain1.com"

Nginx:

add_header Access-Control-Allow-Origin "http://domain1.com";

このようにすると、http:/ domain1/domain2をまったく必要としないので、紛らわしいので削除してください。


実際に恒久的にdomain1/subfolder> domain2をリダイレクトしたい場合は、このようにdomain1の構成を変更するだけです。

Apache:

Redirect 301 /subfolder http://domain2.com

Nginx:

location /subfolder {
            return 301 http://domain2.com;
            }

両方の答えのセットでは、Nginxディレクティブはサーバーの{...}ブロック内にある必要があり、Apacheルールはvirtualhost configまたは.htaccessに移動できることに注意してください(可能であれば、.htaccessをスキップしてください、パフォーマンス上の理由からconfig/virtualhostにすべてを配置してください)。 Apacheのルールはmod_rewriteとmod_headersに依存しており、有効にする必要があります。

4
Tom Brossman

これはDNS経由ではできません。 Webサーバーレベル(.htacess Apache /書き換えルールIIS)で行うか、ASP.net、PHP、Perlなどを実行するスクリプトを介して行う必要があります。基本的に、応答ヘッダーを移動に変更する必要があり、dnsはできませんそれを行う。

1
Frank

これは、サブドメインではなく、サブドメインでDNSからのみ実行できます。サブフォルダーの場合、プロキシパスを実行する必要があります。Apache(バージョン2.4以降)での方法は次のとおりです。

ProxyRequests Off
ProxyPass /subfolder/ http://otherdomain.com/
ProxyPassReverse /subfolder/ http://otherdomain.com/
<Location /subfolder/>
    ProxyHTMLEnable On
    ProxyHTMLURLMap / /subfolder/
</Location>

2番目のホストがポート8080でコンテンツを提供する場合は、http://otherdomain.com:8080も使用します。また、これを機能させるには、Apacheサーバーでmod_proxyおよびmod_proxy_htmlを有効にする必要があります。 mod_proxy_htmlモジュールは、静的リソース(画像、CSS、JavaScriptなど)へのリンクを書き換えるために使用されるため、otherdomain.comからの応答に相対リンクがある場合、それらは適切にロードされます。

mod_proxy_htmlを持たない古いバージョンでは、mod_substituteといくつかの正規表現マジックを使用して同じ結果を得ることができます。

0
Thyamarkos