ユーザー名に「‾(ティルダ)」を使いたくない

 特に設定を変更しなければ、ユーザーのページは「/home/ユーザー/public_html」が「/‾ユーザー/」としてアクセスできるようになっています。このまま運用しているところも多々あるし、いまどき「‾(ティルダ)」の入力ができない人もいるまいとは思うのですが、やはり変な記号はない方がいいなあと思ったりします。それにティルダなしで運用しているところもあるのを見ると、「なんとかウチも」と思ってしまいます。まあチャレンジ精神だけのものといえばそうですね。

一般に紹介されている方法

 さて、ネットを検索すると、この解決策としてよく紹介されているのが次の設定を行う方法です。

AliasMatch  ^/([^/]+)/(.*)  /home/$1/public_html/$2
AliasMatch  ^/([^/]+)       /home/$1/public_html/

 下の設定は、最後の「/(スラッシュ)」を省いたときもアクセスできるようにするためのものです。

 一見うまくいっているかに見えるのですが、意外な盲点があります。ユーザーディレクトリ以外にあるディレクトリにアクセスしようとしても、すべてユーザーディレクトリに行うような変換をされてしまうという大きな罠がありました。

 tDiaryの各テーマがドキュメントルートの下にありますので、テーマの設定ができずに大ハマりしました。

結局

 ドキュメントルートの下に「/home/nori/public_html/」へのシンボリックリンクを張ることで対処しました。これに伴い、「/etc/apache2/sites-available/default」にある<Directory /var/www/>ディレクティブ内の

AllowOverride None

を修正する必要があります。

AllowOverride FileInfo AuthConfig Limit Options Indexes

こんな感じでしょうか。「/etc/apache2/mods-available/userdir.conf」と同じようなことを書いておけばよいと思ったのですが、OptionsとIndexesも書いておかないとCGIの動作に影響が出るようです。