Index: [Article Count Order] [Thread]

Date:  Fri, 17 Sep 2004 10:43:07 +0900
From:  Takashi Matsuo <tmatsuo (at mark) 10art-ni.co.jp>
Subject:  [coba-o:00951] Re: チルダ無しのユーザーページ
To:  coba-o (at mark) bluequartz.org
Message-Id:  <414A412B.60303 (at mark) 10art-ni.co.jp>
In-Reply-To:  <20040916230813.812B.NAOTA (at mark) saikenko.com>
References:  <20040916230813.812B.NAOTA (at mark) saikenko.com>
X-Mail-Count: 00951


松尾です。

たぶんお役には立てませんが、試してみました。

Naota Kobayashi wrote:
> BlueQuartzでお世話になっています。小林直太ともうします。
> 初歩的な質問でスミマセン。
> 
> ユーザーページは以下のようになると思いますが
> http://www.hoge.com/~user_id
> 
> これを
> http://www.hoge.com/user_id/
> のようにチルダ~を使わないようにすることって出来るのでしょうか?
> 
> ”~ ”の入力が難しい人もいるらしく、要望を受けております。
> ご教授下さいませ。

少し見てみたのですが、チルダでのユーザページは、mod_userdir ではなくて、
AliasMatch ^/~([^/]+)(/(.*))?      /home/.sites/28/site1/users/$1/web/$3
というようなディレクティブで実現されています。
ちなみに、以下のようなファイルの中に上記の記述があります。
/etc/httpd/conf/vhosts/site1

ユーザページへのリクエストかどうかの識別子が必要なようですから、チルダ
を使わないのでは無く、別の識別子を使うことで解決するとしたら、、、

url として使える文字で、ユーザ名に使えない文字を識別子として使う必要があ
ると思います。しかも入力がしやすい文字。

どの文字が入力しやすいかは良くわかりませんが、仮にShiftを押す必要が無い
文字だとすると、、、

:;,.
この4文字が候補でしょうか?

では実験をしてみます。ここでは「;」を識別子として使ってみましょう。

AliasMatch ^/;([^/]+)(/(.*))?      /home/.sites/28/site1/users/$1/web/$3

と変更して、apacheを再起動してみます。これで一応
http://test.example.com/;testuser/
のような形でアクセスできるようになりました。

問題点としては

1.vhost の設定をした場合、この設定が元にもどる可能性がある
2.そもそも、; を識別子に使うのは、チルダ以上に判りづらい気がする

ではこんなのはどうでしょう。

AliasMatch ^/users/([^/]+)(/(.*))? /home/.sites/28/site1/users/$1/web/$3
http://test.example.com/users/testuser/

うん。これはいいかもしれません。「users」というディレクトリ名が使えなく
なるデメリットはありますが、判りやすいし、入力もしやすそうです。

vhost の設定を web からした場合に、戻ってしまう危険を承知の上で
試してみてくださいませ。

ちなみにこれらは、FC1 + BlueQuartz-5100R-20040620.tar.gz での話しです。

-- 
Takashi Matsuo <tmatsuo (at mark) 10art-ni.co.jp>
GPG Key fingerprint =
87B6 0212 D28E 2905 BD32  4C83 C0ED 2BDB C129 164E