ホームページを作成している方は、サーバーにアップして公開する前に、
自宅パソコンのローカルサーバで確認していると思いますが、
複数のサイトを別のドメインやサブドメインで運用している場合、
ローカルと実際のサーバでルートディレクトリの位置が違ってややこしくなる時があります。
例えば、hoge.example.comとpiyo.example.comで、それぞれサイト運営したとします。
公開サーバでは、hoge.example.comとpiyo.example.comのディレクトリが作られて、
それぞれのディレクトリ直下にindex.htmlを置けばhttp://hoge.example.comとhttp://piyo.example.comで見ることができます。
でも、ローカルで同様なディレクトリ構成にしても、
http://localhost/hoge.example.comとhttp://localhost/piyo.example.comにしないと見ることができません。
だから、別ページにトップページのリンクを張る場合、
公開サーバではリンク先を「/」でリンクできても、ローカルサーバでは「/」ではリンクできず、相対パスやURLで指定しなければなりません。
PHPでヘッダやフッタを共通にしている場合など、ローカルと公開サーバで同じにしようとすると、
URLでリンクを指定するか、if文で条件分岐しなければなりません。
で、ローカルでディレクトリ単位でルート化する方法です。
*環境は、xampp-win32-1.7.2、WindowsXPとします。
*xamppはE:¥xampp下にインストールしているものとします。
*公開フォルダ「htdocs」直下に「hoge.example.com」「piyo.example.com」の2個のフォルダがあり、それぞれをルートディレクトリにしたいとします。
変更するのは次の2個のファイルです。
E:¥xampp¥apache¥conf¥extra¥httpd-vhosts.conf
C:¥WINDOWS¥system32¥drivers¥etc¥hosts
1.httpd-vhosts.confファイルの変更
修正部分 ※コメントアウトをはずします。
変更前 ##NameVirtualHost *:80
変更後 NameVirtualHost *:80
以下、最終行以降に追加
<VirtualHost *:80>
DocumentRoot "E:/xampp/htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "E:/xampp/htdocs/hoge.example.com"
ServerName hoge.localhost
</VirtualHost>
<Directory "E:/xampp/htdocs/hoge.example.com">
order deny,allow
allow from ALL
</Directory>
<VirtualHost *:80>
DocumentRoot "E:/xampp/htdocs/piyo.example.com"
ServerName piyo.localhost
</VirtualHost>
<Directory "E:/xampp/htdocs/piyo.example.com">
order deny,allow
allow from ALL
</Directory>
2.hostsファイルの変更
以下、追加
127.0.0.1 localhost #この行に下に下記を追加
127.0.0.1 hoge.localhost
127.0.0.1 piyo.localhost
3.Apacheの再起動
xamppの場合、xamppのコントロールパネルで「STOP」「START」でOK。
1 個のコメント
ありがとうございます!
参考にさせていただきます♪