- PR -

apacheにて

1
投稿者投稿内容
jin
ベテラン
会議室デビュー日: 2004/03/11
投稿数: 96
投稿日時: 2006-03-06 22:56
apacheにてwebサーバを運営しているのですが、
質問です。

現在 http://www.hoge.jp/~masa という形でユーザーが使用しているのですが、
コレを http://masa.hoge.jp という形にするのには
バーチャルホストを使用すればできるということは分かっているのですが、

これを複数(100名ほど)いっぺんに行うとなると、やはりバーチャルホストの
設定しかないのでしょうか。

Linux : RedHat9
Apache : 2.0.55
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2006-03-07 01:38
引用:

jinさんの書き込み (2006-03-06 22:56) より:

現在 http://www.hoge.jp/~masa という形でユーザーが使用しているのですが、
コレを http://masa.hoge.jp という形にするのには
バーチャルホストを使用すればできるということは分かっているのですが、

これを複数(100名ほど)いっぺんに行うとなると、やはりバーチャルホストの
設定しかないのでしょうか。



おっしゃる通り、独自のモジュールを作成するか (既に作成された方がいらっしゃるかもしれませんが)、VirtualHost を利用するしかないように思います。ただ、いずれにしてもDNSの設定追加を伴うので、手間はかかると思います。

[ メッセージ編集済み 編集者: あんとれ 編集日時 2006-03-07 01:40 ]
末記人
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 233
お住まい・勤務地: あわにこ
投稿日時: 2006-03-07 02:25
mod_rewriteを使うという手があります。
ただし、mod_rewriteが組み込まれている前提ですが

実環境が無いのでエラーがあるかもしれませんが
.htaccessや httpd.confのしかるべき箇所に
↓な感じで実現可能だと思います。
コード:

<IfModule mod_rewrite.c>
RewriteEngin On
RewriteCond %{HTTP_HOST} ^(\w)\.hoge\.jp$
RewriteCond %{REQUEST_URI} !^/~
RewriteRule ^(.*)$ /~%1/
</IfModule>



ヴァーチャルサーバの設定は↓を追加すればいいと思います。
ServerAlias *.hoge.jp

これで
http://{USER_NAME}.hoge.jp/{パスとかクエリ文字列}

http://{USER_NAME}.hoge.jp/~{USER_NAME}/{パスとかクエリ文字列}
という文字列に書き換えられて内部で再リクエストされます。

この場合 \wでマッチをかけているのでUSER_NAMEの部分には英数字しか使えません。


DNSのレコード追加についても
* IN A http://www.xxx.yyy.zzz
を追加すれば大丈夫そうですよ!


[ メッセージ編集済み 編集者: 未記入 編集日時 2006-03-07 02:32 ]
jin
ベテラン
会議室デビュー日: 2004/03/11
投稿数: 96
投稿日時: 2006-03-09 10:42
ありがとうございます。
返信が遅れてしまってすみません。

モジュールを利用してできるのは楽ですね。
でも何かエラーが出そうな気が・・・

いろいろ試してみます。
1

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