- PR -

Apacheのユーザーディレクトリの設定について

1
投稿者投稿内容
やっち
会議室デビュー日: 2001/08/31
投稿数: 6
投稿日時: 2001-09-26 10:46
apacheで一般にユーザーディレクトリを表示する場合は、
http://www.domain.com/~user/
http://[ホスト名].[ドメイン名]/~[ユーザー名]/[ファイル名]
で表示されると思うのですが、
これを以下のようにURLを入力しても表示されるように
するには、どのように設定すればよいのでしょうか?
http://user.www.domain.com/
http://[ユーザー名].[ホスト名].[ドメイン名]/
すなわち「/~」 を使わずにホスト名部分にユーザー名を入力することによって
ユーザーディレクトリを表示させたいのですが、設定方法をご存じ方ありませんでしょうか?
それか、apacheの設定だけでは無理で、何かしらのプログラムを書く必要があるのか、apacheを改造する必要があるのか教えてください。
ひぐち おさむ
大ベテラン
会議室デビュー日: 2001/07/26
投稿数: 108
お住まい・勤務地: 東京都在住
投稿日時: 2001-09-26 12:00
いちばん簡単な方法はバーチャルホスト機能を使うことでしょうか。

まず、user.www.domain.com というホスト名を DNS に登録します。(これをやらないと、他のコンピュータからこのホスト名が認識されない)
といっても別のIPアドレスを用意する必要はなくて、CNAME を使って www.domain.com の別名とします。

あとは、Apache にバーチャルホストの設定をするだけです。

バーチャルホストによる複数サイトの同時運用という記事にくわしく解説してありますので参考にしてみてください。
_________________
ひぐち おさむ
[Disclaimer] この書き込みは私個人の見解を記述したものです。私が所属・関与する法人・団体の意見を代表・代弁するものではありません。
やっち
会議室デビュー日: 2001/08/31
投稿数: 6
投稿日時: 2001-09-26 13:59
ありがとうございます。
引用:

ひぐち おさむさんの書き込み (2001-09-26 12:00) より:
いちばん簡単な方法はバーチャルホスト機能を使うことでしょうか。

まず、user.www.domain.com というホスト名を DNS に登録します。(これをやらないと、他のコンピュータからこのホスト名が認識されない)
といっても別のIPアドレスを用意する必要はなくて、CNAME を使って http://www.domain.com の別名とします。




・・・バーチャルを使用するのではなく、以下のような機能を実現したいのです。
たとえば、(ドメイン名:xxxxx.com、サーバーホスト名:www、ユーザー名:oxoxoとすると)
http://www.xxxxx.com/~oxoxo/index.html で通常ユーザーのpublic_html以下のindex.htmlファイル表示すると思うのですが、これを
http://oxoxo.www.xxxxx.com/index.html でユーザー領域(oxoxo)のpublic_html以下のindex.htmlファイルを表示させたいのです。もしくは、
/home/任意ディレクトリ/public_html/oxoxo(←適当なディレクトリ)/index.htmlのようなindexファイルを表示させる場合
http://www.xxxxx.com/oxoxo/ ] でindex.htmlをwebで表示することが出来ればよいのですが・・・

apacheの「aliases /oxoxo/ "以下省略」を使うと特定のフォルダについては、設定することが出来ますが、oxoxo 部分を毎回任意のディレクトリにセットした場合にすべてのディレクトリをaliases設定出来ないのでそれを正規表現などを使って指定できればよいのですが。

いろいろ文献を読んでもなかなか載っていないのでご存知であれば教えてください。また、可能なのか不可能なのかもわかりません。
ひぐち おさむ
大ベテラン
会議室デビュー日: 2001/07/26
投稿数: 108
お住まい・勤務地: 東京都在住
投稿日時: 2001-09-26 15:51
引用:

これを
http://oxoxo.www.xxxxx.com/index.html でユーザー領域(oxoxo)のpublic_html以下のindex.htmlファイルを表示させたいのです。


さきほどの書き込みでもちらっと触れましたが、これをやるにはそれぞれのユーザーに対してホスト名を割り振ることになります。これは DNS のエントリをいじらないと不可能です。Apacheだけではどうしようもありません。
自動化するとなると、たとえば /etc/passwd の内容にそって DNS の設定ファイルを書き換えるようなスクリプトでも作るとか……なにか、ほかにうまい手はないですかね>みなさん

一方、Apache のバーチャルホストの設定は mod_rewrite で正規表現を使って指定できるようです。
Apache の mod_rewrite の URL Rewriting Guide という文書、Virtual User Hosts という項に例が載っています。

引用:

もしくは、
/home/任意ディレクトリ/public_html/oxoxo(←適当なディレクトリ)/index.htmlのようなindexファイルを表示させる場合
http://www.xxxxx.com/oxoxo/ ] でindex.htmlをwebで表示することが出来ればよいのですが・・・


こっちは、URL にチルダが入ってよければ、デフォルトで入っているユーザーディレクトリの機能をそのまま使うことでしょうが、チルダがいやならば、これも mod_rewrite を使って正規表現で強制的に URL を書き換えるというのではどうでしょうか。

# 使ったことないので、断定的なことは言えませんが……
_________________
ひぐち おさむ
[Disclaimer] この書き込みは私個人の見解を記述したものです。私が所属・関与する法人・団体の意見を代表・代弁するものではありません。
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2001-09-28 19:01
URLは <プロトコル>://<ホスト名>[:<ポート番号>]/<パス> で成り立ちますので、
<ホスト名>をユーザ毎に世界中に見えるようにせねばなりません。

そのためには、うえでひぐちさんが書いたはるように、DNS への登録が必要になります。
また、仮に DNS 登録ができたとしても、それが世界中に伝播するまで時間がかかります。

というわけで、不可能ではないけれど現実的ではないでしょう。

フリーホームページを提供しているようなサイトは、自分のドメインを管理する DNS サーバをもっていて、そこのエントリをいじっているはずです。
また、それと同時に、virtual host のマッピングもいじっているはずです。
原理的にそれ以外に方法はないでしょう。

1

スキルアップ/キャリアアップ(JOB@IT)