それほど複雑ではないと思いますが、最善の方法を見つけるのに苦労しています。
にサイトがあり、site.example.com
その下に 5 つのページがあります。これらの 5つのページは であるとしますsite.othersite.com/page1.html, page2.html, page3.html, page4.html, page5.html
。また、他に 5 つのサブドメイン もあります。lp1.OTHERSITE.com, lp2.othersite.com, lp3.othersite.com, lp4.othersite.com, lp5.othersite.com
これらのドメインはすべて、同じサーバーの同じドキュメント ルートでホストされています。ここで、Apache に次のパターンへの透過的なリダイレクト (つまり、アドレス バーが変更されない) を行わせる必要があります。
lp1.othersite.com --> site.example.com/page1.html
lp2.othersite.com --> site.example.com/page2.html
lp3.othersite.com --> site.example.com/page3.html
lp4.othersite.com --> site.example.com/page4.html
lp5.othersite.com --> site.example.com/page5.html
これは Apache のみを使用して可能ですか? そうでない場合、受信ホスト名に基づいて iframe に site.example.com/page*.html ページをロードする PHP スクリプトを既に作成していますが、その PHP スクリプトに 5 つの lp*.othersite.com ドメインを送信するように Apache に指示する方法がわかりません。
プロジェクトの説明が十分できていれば幸いです。基本的には、アドレス バーのアドレスを変更せずに、lp* サブドメインをそれぞれ別の site.example.com/page*.html ページにリダイレクトする必要があります。
ヒントやアドバイスをいただければ幸いです。私が実現できたのは、Apache がそれらの URL を PHP スクリプトにリダイレクトすることだけでした。しかし、リダイレクトだったため、アドレス バーも変更されました (その時点では、ホスト名が変更されたため、PHP スクリプトは機能しませんでした)
答え1
同じ を使用して各ホスト名に仮想ホストを設定しますDocumentRoot
が、次のようにします。
DirectoryIndex page1.html
lp1の場合、
DirectoryIndex page2.html
lp2 などの場合、それらのページが の代わりにデフォルト ページとして使用されるようになりますindex.html
。
したがって、eg はhttp://lp3.othersite.com/
を提供しますpage3.html
。また、などへの移動も可能になりますhttp://lp3.othersite.com/page1.html
が、デフォルトのページはDirectoryIndex
ディレクティブで指定したものになります。
答え2
何か見落としているかもしれませんが、あなたが求めているのは仮想ホストだけだと思います。参考:
仮想ホストでは、同じ Web サーバーに設定された複数の DNS エントリが必要です。Apache は、使用される DNS 名に基づいて指定されたページを提供します。リダイレクトしない限り、ユーザーは入力した内容を見ることになります。
答え3
URL Rewrite を使用すると、これを実行できます。簡単な即席の例を示します (機能するかどうかはわかりません)。
RewriteCond %{HTTP_HOST} ^lp([0-9]).othersite.com [NC]
RewriteRule ^(.*)$ page$1.html [NC,QSA]
答え4
フォローするApache 仮想ホストのドキュメントVirtualHost
各FQDNを設定するには、mod_dir設定しDirectoryIndex
、リダイレクトに使用するモジュールリライト。
チュートリアル: