ラボ > サーバ:Xampp

Xamppでサブドメインを使う(hosts、httpd-vhosts.conf)

「localhost/〇〇〇/xxx.html」じゃなくて「〇〇〇.localhost/xxx.html」としたい

作成日:2018-05-08, 更新日:2021-02-03

基本

・「C:\xampp\apache\conf\extra\httpd-vhosts.conf」を修正
・「C:\WINDOWS\system32\drivers\etc\hosts」を修正
・XamppからApache再起動

以下の例は下記の2つでゴニョゴニョしたい。
・「http://localhost」
・「http://zebra.localhost」

httpd-vhosts.confの修正

「C:\xampp\apache\conf\extra\httpd-vhosts.conf」を修正する。

「http://zebra.localhost」で使うフォルダによって内容が異なる
・「xampp/htdocs/zebra」を使いたいとき
・「xampp/zebra」を使いたいとき

「C:\xampp\htdocs\zebra」を使いたいとき

<VirtualHost *:80>
  DocumentRoot "C:/xampp/htdocs"
  ServerName localhost
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot "C:/xampp/htdocs/zebra"
  ServerName zebra.localhost
</VirtualHost>

「C:\xampp\zebra」を使いたいとき

<VirtualHost *:80>
  DocumentRoot "C:/xampp/htdocs"
  ServerName localhost
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot "C:/xampp/zebra"
  ServerName zebra.localhost
</VirtualHost>
<Directory "C:/xampp/zebra">
  Require all granted
  #order deny,allow
  #allow from ALL
</Directory>

※「xampp/htdocs」の下じゃないなら「<Directory "C:/xampp/zebra">」が必要

「<Directory>」内のはapacheのバージョンに注意。

apache 2.2系
order deny,allow
allow from ALL
apache 2.4系
Require all granted

プログラムが絡むとき

「Options Indexes FollowSymLinks Includes ExecCGI」「AllowOverride All」あたりも追加しておくのが良さげ。

<VirtualHost *:80>
  DocumentRoot "C:/xampp/htdocs"
  ServerName localhost
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot "C:/xampp/zebra"
  ServerName zebra.localhost
</VirtualHost>
<Directory "C:/xampp/zebra">
  Options Indexes FollowSymLinks Includes ExecCGI
  AllowOverride All
  Require all granted
  #order deny,allow
  #allow from ALL
</Directory>

hostsの修正

「C:\WINDOWS\system32\drivers\etc\hosts」を修正する。

127.0.0.1  localhost
127.0.0.1  zebra.localhost

制限

メモ。詳細は不明。

1つのIPで設定できるのは10個らしい。
正確には、1つのIPを10個までしか設定できない。

▼「127.0.0.1」を10個設定。11個目は無視されるそうだ。

127.0.0.1  localhost
127.0.0.1  test02.localhost
127.0.0.1  test03.localhost
・・・
127.0.0.1  test10.localhost
127.0.0.1  test11.localhost

▼「127.0.0.1」とドメインを「1対1」で設定するのではなく「1対複数」ですれば10個以上設定できる

127.0.0.1 localhost test02.localhost test03.localhost ・・・ test10.localhost
127.0.0.1 test11.localhost

※「1対10」が最大なのかは不明。

ぷちまとめ

記述A 記述B
一つのIPに複数のドメインを割り当て
127.0.0.1  localhost
127.0.0.1  test02.localhost
127.0.0.1  localhost test02.localhost
一つのIPは10個まで
127.0.0.1  localhost
127.0.0.1  test02.localhost
127.0.0.1  test03.localhost
・・・
127.0.0.1  test10.localhost
127.0.0.1  localhost
127.0.0.1 test0201.localhost test0202.localhost
127.0.0.1 test0301.localhost test0302.localhost
・・・
127.0.0.1 test1001.localhost test1002.localhost

※一つのIPに複数のドメインを紐づけは可能

XamppからApache再起動

Apacheを再起動したらブラウザからアクセスして確認。

関連項目

PHP file_get_contents()+Win:Xampp+localhostでタイムアウト
Xamppでサブドメインを使う(hosts、httpd-vhosts.conf):簡易版