Apache2 バーチャルホスト 設定
ヒント
現状の設定ではhttp://mail.domain.tldやhttp://ftp.domain.tldでアクセスできてしまうため
VirtualHostの設定でhttp://www.domain.tldのアクセスのみを許可する。
ServerAlias domain.tldを追加してhttp://domain.tldのアクセス許可も可能。
httpd.conf編集
[root@centos ~]# vi /etc/httpd/conf/httpd.conf
#NameVirtualHost *:80
↓
NameVirtualHost *:80 ←コメント解除(バーチャルホスト許可)
VirtualHost設定
[root@centos ~]# vi /etc/httpd/conf.d/virtual.conf
↓下記を記入
<VirtualHost *:80>
ServerName any
DocumentRoot /tmp
</VirtualHost>
<VirtualHost *:80>
ServerName www.server-manual.com
DocumentRoot /var/www/html
</VirtualHost>
wwwなしで接続を許可する場合
[root@centos ~]# vi /etc/httpd/conf.d/virtual.conf
<VirtualHost *:80>
ServerName www.server-manual.com
ServerAlias server-manual.com
DocumentRoot /var/www/html
</VirtualHost>
wwwなしをwwwありにリダイレクト(wwwありに統一)する場合
[root@centos ~]# vi /etc/httpd/conf.d/virtual.conf
<VirtualHost *:80>
ServerName www.server-manual.com
ServerAlias server-manual.com
DocumentRoot /var/www/html
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(server-manual.com)(:80)? [NC]
RewriteRule ^(.*) http://www.server-manual.com/$1 [R=301,L]
</VirtualHost>
サブドメインを追加する場合
[root@centos ~]# vi /etc/httpd/conf.d/virtual.conf
↓最終行に下記を記入
<VirtualHost *:80>
ServerName user_name.server-manual.com
DocumentRoot /home/user_name/public_html
ErrorLog /var/log/httpd/user_name-error_log
CustomLog /var/log/httpd/user_name-access_log combined env=!nolog
</VirtualHost>
ヒント
サブドメインを追加する場合はDNSの設定も必要です。
Apache再起動
[root@centos ~]# /etc/rc.d/init.d/httpd restart