web-dev-qa-db-ja.com

URLを変更せずにWordpressサブディレクトリ内の別のホスト上のバックエンドサーバーからコンテンツを表示する

現在、1つのドメインからすべてアクセス可能なASP.NETアプリケーションが多数あります。したがって、www.example.comはメインWebサイトに接続します。 www.example.com/documentsは、顧客がドキュメントにアクセスできる個別のアプリケーションです。

これはIISでホストされ、ドキュメントブランチはASP.NETアプリケーションです。お客様には、次のようなドキュメントにリンクするメールがあります:www.example.com/documents/document?id=12345

私たちは、メインWebサイトを更新し、それを他のすべてのものから分離すること、つまり、別のホストに移動すること、ほとんどの場合Apache/WordPressのセットアップを検討しています。

これを念頭に置いて、元のドメイン名がメインのWebサイトに関連付けられ、その後、Windows/IIS上のドキュメントアプリケーションを保持し続けるセカンダリドメインがセットアップされます。 www.backenddomain.example/documents

このシナリオでは、Apache/WordPressは、ブラウザーでURLを変更せずに、ドキュメントのサブフォルダー/ページだけを新しいドメインにリダイレクトできますか? www.example.com/documentswww.backenddomain.example/documentsに移動しますが、顧客にはwww.example.com/documentsが表示されます

301リダイレクトを設定できることは知っていますが、それにより顧客に表示されるURLが変更されるため、理想的には同じままにしておくことをお勧めします。コンテンツを効果的に転送します。

2
Chris Nevill

documents.example.comを使用しなかったのは残念です。URLを変更する必要がありますが、必要な効果が得られるからです。

マスキングを使用しても、ユーザーにURLをリダイレクトしない限り、別のURLを指すことはできません。ここに含まれるセキュリティリスクについて考えてください。虐待の可能性は非常に高いため、これは許されていません。正当な理由があります。新しいドメインを指定している場合、そのドメインを公開する必要があります。 (これをバイパスする方法がありますが、それはブラックハット/グレイハットと見なされ、これらの方法の使用に注意します)

別のアプローチは、サブドメインdocuments.example.comを作成し、それを古いサーバーにポイントすることです。

次に、新しいサーバーで、いくつかの正規表現ロジックを使用して、古いドキュメントのURLを新しいサブドメインURL(古いサーバーを指している)にリダイレクトできます。

RewriteRule ^/?documents/(.*) http://documents.example.com/$0 [R,L]

これにより、既存のURLを新しいサブドメインにリダイレクトできます。まだあなたが探している効果です。これはサブドメインを使用していますが。

古いサーバーでは、要求を処理して、このドメインをdocumentsフォルダーに制限することができます。ホストをこのハックではなくドキュメントディレクトリに設定することをお勧めしますが。

RewriteCond %{HTTP_Host} documents.example.com
RewriteCond %{REQUEST_URI} !^/?documents/
RewriteRule .* documents/$0

このアプローチを使用すると、希望の外観を得ることができるはずです。新しいURLを使用するようにアプリを更新することを引き続きお勧めしますが、リダイレクトはそれを処理するため必要ありません。

これにより、必要な機能を使用できませんなし URLを変更しますが、これにより、アプリコードを変更する代わりに、URLの変更をVIAリダイレクトおよびホスト構成で処理できます。 。これによる影響は最小限であり、目前の問題に対する非常に迅速な解決策です。この設定により、従来のURLをドキュメントディレクトリを指している新しいサブドメインにリダイレクトできます。ユーザーがこれらのドキュメントにアクセスできるようにするために、Cookie /トークンの使用をお勧めしますが、これはこの質問の範囲外です。

1
Jeremy