Apache で複数のドキュメント ルートを定義する方法

Apache で複数のドキュメント ルートを定義する方法

PHP ファイル内のすべてのリンクにルート相対パスを使用します (例: "url(/img/myimj.jpg)")

Godaddy ホスト サーバーでは、問題なく動作します。

しかし、ローカルホストで実行したいのです。(Ubuntu 9、Apache 2、PHP 5)

たとえば、私のサイトはvar/www/siteoneに保存され、別のサイトはvar/www/sitetwoに保存されています。

ルートディレクトリは「var/www」に設定されます。

ここで問題となるのは、href="/" が var/www/siteone ではなく var/www/ にリンクしていることです。

サイトごとに異なるドキュメント ルートを定義する方法はありますか?

私は Web 開発の初心者なので、仮想ホストでそれができるかどうかはわかりません。

誰か説明してくれませんか?

ご回答ありがとうございます。

このファイル/etc/apache2/sites-available/defaultに新しい仮想ホストを追加する必要があります

しかし、まだ混乱しています。ローカルホストではどうすればよいのでしょうか? デフォルトのIPとポートは常に127.0.0.1:80です。

答え1

<VirtualHost>セクションには独自のDocumentRootディレクティブを設定できます。

答え2

私は個人的にVirtualDocumentRootをよく使います:
http://httpd.apache.org/docs/2.0/mod/mod_vhost_alias.html#仮想ドキュメントルート

このディレクティブを使用すると、たとえば次のことが可能になります。

VirtualDocumentRoot /var/www/%-2/%-3/

%-2 は「右から 2 番目の項目」なので、exemple.com では exemple です。
%-3 は右から 3 番目の項目なので、foo.exemple.com では foo です。

次に、ホスト名に一致するフォルダーを作成する必要があります。localhost
/ は次のようになります。

/var/www/localhost/_/

値がない場所に _ があることに注意してください (私は常に _ -> www のようなシンボリックリンクを作成します)

したがって、
www.site1.com は /var/www/site1/www/ となり、
www.site2.com は /var/www/site2/www/ となり、
localhost は /var/www/localhost/_/ となります。

それでは、シンボリックリンクを楽しんでください :-)

関連情報