ユーザーのためのサブドメインの有無にかかわらずアクセス

(2005.8.5 公開)

作業環境
Fedora Core1+Bluequartz20040620

#はルートユーザーにて入力したもの。

課題1
http://foo.jp/を http://www.foo.jp/で表示したい場合

・DNSにfoo.jpというレコードを追加し、Webサーバの別名にfoo.jpを設定すれば可能です。


課題2
http://www.foo.jp/をhttp://foo.jp/とするには、以下の作業が必要です。
例:www.foo.jpにおいて作業

1.DNSの設定を変更
Aレコードを以下のようにします。

GUIから設定する場合、最初にサブドメイン無しの設定項目を入力した後、サブドメインありの設定を追加することで警告を回避できます。

#cd /var/named/chroot/var/named/

#vi db.site?

-----
foo.jp. in a 61.11.175.194
www.foo.jp. in a 61.11.175.194
-----

DNSを再起動してください。GUIからでもターミナルからでもかまいません。

2.仮想サイトの設定を変更
(1)/etc/httpd/conf/vhosts/site?に対して変更を加えます

#vi /etc/httpd/conf/vhosts/site?

-----
ServerName foo.jp

RewriteCond %{HTTP_HOST} !^foo.jp(:80)?$ [NC]
RewriteRule ^/(.*) http://foo.jp/$1 [L,R]
-----

以上の変更項目のうち、RewriteCondやRewriteRuleをsite?.Includeに加えてもsite?ファイルの設定が上書きされるわけではありません
書き込んだら、URLの読み替えがループし、ブラウザからエラーが返ってくることとなりますので注意してください。
また、該当する仮想サイトの IPアドレスや FQDN などを変更すると設定内容は上書きされてしまいますので注意してください。

(2)/etc/httpd/conf/vhosts/site?.includeに対して以下を追加します

#vi /etc/httpd/conf/vhosts/site?.include

-----
ServerAlias www.foo.jp
-----

(3)/usr/local/sbin/split_logsに以下の内容を追加します
追加した仮想サイトと異なる名称でのアクセス解析を許可するため、元のFQDNに置き換える処理を行ないます。
#vi /usr/local/sbin/split_logs

234行目を見て、
-----
while (my $line = <STDIN>) {
$line =~ s|^foo.jp|www.foo.jp|g  ←この行を追加
($DEBUG > 1) && print STDERR "process line ", $i++, "\n";
-----

と変更してください。

以上の作業が完了したら、Apacheを再起動してください。

#/etc/rc.d/init.d/httpd restart

以上で、サブドメインありでもなしでもサイトへアクセスすることが可能です。

このページを作成するにあたり、Bluequartzメーリングリストのお世話になりました。
この場を借りて御礼申し上げます。