blueonyx で作成した仮想サイトに www 無しでアクセスさせる方法

ServerMan@VPS には blueonyx がインストールされていますが、それで作った仮想サイトへアクセスすると www 有りで統一されています。www 無し有りの設定は blueonyx からすることができませんので、手動で設定に変更を加える必要があります。

それには仮想サイトの番号を調べる必要がありますが、この辺は何となく調べます。
/home/.sites/ 以下 site1 とか site2 とかいうディレクトリがあります。この site1 の 1 が多分サイトの ID でしょうね。

番号が分かりましたら、以下のように仮想サイトの設定ファイルが入っているフォルダに移動します。
ちなみに root にならないとアクセスできません。

1
2
$ su
$ cd /etc/httpd/conf/vhosts

中に site1 というファイルがあるはずです。それを編集します。

1
$ vi site1

今回弄るのは RewriteEngine 以下になりますが、他にさらっと重要な設定が大量に書いてありますので、こちらについては後ほど修正していく感じになりそうですね。なぜ管理ツールから編集できるようにしなかったのだろう…。

ファイルの内容は以下のような内容になっているかと思います。

# owned by VirtualHost
NameVirtualHost 123.456.78.901:80

# FrontPage needs the following four things to be here
# otherwise all the vhosts need to go in httpd.conf, which could
# get very large since there could be thousands of vhosts
ServerRoot /etc/httpd


ServerName www.example.com
ServerAlias example.com
ServerAdmin example
DocumentRoot /home/.sites/28/site1/web
ErrorDocument 401 /error/401-authorization.html
ErrorDocument 403 /error/403-forbidden.html
ErrorDocument 404 /error/404-file-not-found.html
ErrorDocument 500 /error/500-internal-server-error.html
RewriteEngine on
RewriteCond %{HTTP_HOST} !^123.456.78.901(:80)?$
RewriteCond %{HTTP_HOST} !^www.example.com(:80)?$ [NC]
RewriteRule ^/(.*) http://www.example.com/$1 [L,R=301]
# BEGIN WebScripting SECTION. DO NOT EDIT MARKS OR IN BETWEEN.
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php
# END WebScripting SECTION. DO NOT EDIT MARKS OR IN BETWEEN.
# BEGIN PHP SECTION. DO NOT EDIT MARKS OR IN BETWEEN.
php_admin_flag safe_mode On
php_admin_flag safe_mode_gid Off
php_admin_value safe_mode_allowed_env_vars PHP_
php_admin_value safe_mode_exec_dir .
php_admin_value safe_mode_include_dir .
php_admin_value safe_mode_protected_env_vars LD_LIBRARY_PATH
php_admin_flag register_globals Off
php_admin_flag allow_url_fopen Off
php_admin_flag allow_url_include Off
php_admin_value open_basedir /tmp/:/var/lib/php/session/:/home/.sites/28/site1/
php_admin_value post_max_size 8M
php_admin_value upload_max_filesize 2M
php_admin_value max_execution_time 30
php_admin_value max_input_time 60

今回注目したいのが以下の部分のみです。

RewriteEngine on
RewriteCond %{HTTP_HOST} !^123.456.78.901(:80)?$
RewriteCond %{HTTP_HOST} !^www.example.com(:80)?$ [NC]
RewriteRule ^/(.*) http://www.example.com/$1 [L,R=301]

www.example.com でなければ、www.example.com へリダイレクトしますとなっていますので、以下のように編集します。

RewriteEngine on
RewriteCond %{HTTP_HOST} !^123.456.78.901(:80)?$
RewriteCond %{HTTP_HOST} !^example.com(:80)?$ [NC]
RewriteRule ^/(.*) http://example.com/$1 [L,R=301]

これで、example.com でなければ、example.com へリダイレクトしますよという内容になります。
そもそもなぜここにこれがある…別にどちらでも受け入れるようにしておいて、利用者に .htaccess などで勝手に制限してもらっても良かったのではないだろうか。

終わったら保存をしてもらって以下のようにコマンドを打って、サーバーを再起動します。

1
$ reboot

apache の再起動だけでも良かったかもしれないです。
今度試してみます。試したら方法追記しますね。

コメント

コメントは受け付けていません。