2007.12.04 Tue

Apache ~(チルダ)なしでユーザーディレクトリのページを表示

Apache のユーザーディレクトリ機能を初期設定のまま有効にするとユーザーのページを表示させるには、

http://サイトアドレス/~user/

となります。

~を使わずユーザーディレクトリにアクセスする方法について

# vi /etc/httpd/conf/httpd.conf

AliasMatch ^/([^/]+)/(.*) /home/$1/public_html/$2
# 表示 : http://サイトアドレス/user/

または

AliasMatch ^/userdir/([^/]+)/(.*) /home/$1/public_html/$2
# 表示 : http://サイトアドレス/userdir/user/

設定を反映

service httpd restart


^/([^/]+)/(.*)を設定したときの警告について

[warn] The Alias directive in /etc/httpd/conf/httpd.conf at line 566 will probably never match because it overlaps an earlier AliasMatch.
[warn] The ScriptAlias directive in /etc/httpd/conf/httpd.conf at line 591 will probably never match because it overlaps an earlier AliasMatch.
[warn] The Alias directive in /etc/httpd/conf/httpd.conf at line 866 will probably never match because it overlaps an earlier AliasMatch.

上記警告が出る場合は、

Alias /icons/ "/var/www/icons/"
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
Alias /error/ "/var/www/error/"

で設定がかぶっているために警告がでています。このままでも正常に動作することは可能です。ただ、 icons cgi-bin error を aliasする必要が無い場合は、コメントアウトすることで、警告文がでなくなります。

注意点

ルートディレクトリ直下のディレクトリ名と同じユーザーは作成しないようにしてください。ユーザーを作成し、ディレクトリ名がかぶってしまった場合は、ユーザーディレクトリを参照するようになってしまいます。

参考サイト

システム構築に関する覚書トップページへ