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する必要が無い場合は、コメントアウトすることで、警告文がでなくなります。
注意点
ルートディレクトリ直下のディレクトリ名と同じユーザーは作成しないようにしてください。ユーザーを作成し、ディレクトリ名がかぶってしまった場合は、ユーザーディレクトリを参照するようになってしまいます。