電子書籍の厳選無料作品が豊富!

現在、メインのサーバhoge.ddo.jpにてApache2によるWebサーバを構築しています。
今回要望があり、ユーザのHPを別のドメインabc.dip.jpにバーチャルホストを利用して運営することになりました。
そこで質問なのですが、
http://abc.dip.jp/
にアクセスすることでユーザのHPにアクセスできます。しかし、
http://hoge.ddo.jp/~misa/
(misaはabc.dip.jpのHPを利用するユーザ)
にアクセスしても同じ結果が得られてしまいます。
これを、
http://hoge.ddo.jp/~misa/
でアクセスした場合には、HPを表示できなくしたいのですが、このように設定することはできるのでしょうか?
よろしくお願いします。

設定( /usr/local/etc/apache2/httpd.conf )

DocumentRoot "/usr/local/www/data"
ServerName hoge.ddo.jp:80

<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /usr/local/www/data
ServerName hoge.ddo.jp
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /home/misa/public_html
ServerName abc.dip.jp
</VirtualHost>

環境
FreeBSD 5.4-Release-p2
Apache 2.0.54

A 回答 (4件)

hoge.ddo.jpのVirtualHostセクションを以下のようにしたらどうでしょうか?



<VirtualHost *:80>
DocumentRoot /usr/local/www/data
ServerName hoge.ddo.jp
UserDir disabled misa ← この行を追加
</VirtualHost>
    • good
    • 0
この回答へのお礼

Leanさん
ご回答ありがとうございます。

<VirtualHost *:80>
DocumentRoot /usr/local/www/data
ServerName hoge.ddo.jp
UserDir disabled misa
</VirtualHost>

UserDir disabled misa
の行を追加することでできました。
ありがとうございました。
余談ですが、http://abc.dip.jp/でアクセスした場合でも、/home/の設定が反映されるんですね。

<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
</Directory>

お礼日時:2005/06/19 01:25

#1です。



ちょっと説明不足でした。

Userdir abcdefg というのは、「でたらめの文字」を意味することでした。

確実そうなのは・・・

Userdir public_html ←VirtualHostではない所
(中略)
<VirtualHost *:80>
DocumentRoot /home/misa/public_html
ServerName abc.dip.jp
UserDir /dev/null ←ここだけを変更
</VirtualHost>

です。

403 アクセス非拒否が帰るはずです。
    • good
    • 0
この回答へのお礼

ymdaさん
ご回答ありがとうございます。

当方の説明不足ですみません。hoge.ddo.jpでも既に他のユーザのHPが設置してあります。

> Userdir public_html ←VirtualHostではない所
> (中略)
> <VirtualHost *:80>
> DocumentRoot /home/misa/public_html
> ServerName abc.dip.jp
> UserDir /dev/null ←ここだけを変更
> </VirtualHost>

アドバイスされた方法を試してみたのですが、特に今までと状況は変わらないみたいでした。

http://abc.dip.jp/
http://hoge.ddo.jp
http://hoge.ddo.jp/~misa/
http://hoge.ddo.jp/~abc/ (abcは他のユーザ)
の全てでアクセスすることができました。

UserDir public_html

<VirtualHost *:80>
DocumentRoot /home/misa/public_html
ServerName abc.dip.jp
UserDir /dev/null
</VirtualHost>

試しに、以下のように設定してみたところ、

http://abc.dip.jp/ OK
http://hoge.ddo.jp OK
http://hoge.ddo.jp/~misa/ NG
http://hoge.ddo.jp/~abc/ (abcは他のユーザ) NG
という結果になりました。

<VirtualHost *:80>
DocumentRoot /usr/local/www/data
ServerName hoge.ddo.jp
UserDir /dev/null
</VirtualHost>

別ドメインで、運営予定のabc.dip.jpのユーザmisaだけ、
http://hoge.ddo.jp/~misa/でアクセスできないようにして
他のユーザ(abcなど)は
http://hoge.ddo.jp/~abc/でアクセスできるようにするという設定は無理なのでしょうか?
お手数ですが、よろしくお願いします。

お礼日時:2005/06/18 13:05

No.1の方が言っているUserDirディレクティブを追加する対象のVirtualHostセクションは、「abc.dip.jp」の方ではなくて「hoge.ddo.jp」の方では?


UserDirを「public_html」以外にする事によってhttp://hoge.ddo.jp/~user/でアクセスした時のHTMLファイル等の参照ディレクトリを現在ある$HOME/public_html以外にしステータスコード404(Not Found)にしようとするわけですから。

↓修正対象VirtualHostセクション
<VirtualHost *:80>
DocumentRoot /usr/local/www/data
ServerName hoge.ddo.jp
</VirtualHost>
 
    • good
    • 0
この回答へのお礼

Leanさん
ご回答ありがとうございます。

UserDirの意味が分かりました。
UserDir public_html
の箇所をバーチャルホストのディレクティブで上書きするという意味だったのですね。

当方の説明不足ですみません。実は、既にhoge.ddo.jpでもユーザのHPが設置してあり、

<VirtualHost *:80>
DocumentRoot /usr/local/www/data
ServerName hoge.ddo.jp
UserDir /usr/local/www/data
</VirtualHost>

とすると、確かに
http://hoge.ddo.jp/~misa/ではアクセスできないのですが、
他のユーザ(http://hoge.ddo.jp/~abc/)もアクセスできなくなってしまいます。

お礼日時:2005/06/18 12:49

案外、こういう設定がちゃんと通ったりします。


お試しアレ

Userdir public_html
(略)
<VirtualHost hostname>
ServerAdmin ****@*****.cx
DocumentRoot /home/ほにゃらら
ServerName hostname
Userdir abcdefg ←ここ
</VirtualHost>
    • good
    • 0
この回答へのお礼

ymdaさん
ご回答ありがとうございます。
アドバイスの通り、

UserDir public_html

<VirtualHost *:80>
DocumentRoot /home/misa/public_html
ServerName abc.dip.jp
UserDir /home/misa/public_html ←変更箇所
</VirtualHost>
と変更し、ApacheをReloadしたのですが、
http://hoge.ddo.jp/~misa/
にアクセスするとHPが表示されてしまいます。
UserDirの指定の仕方が悪いのかと思い、
UserDir abc.dip.jp
UserDir misa
等、変更してみたのですが結果は変わらなかったです。
Userdir abcdefg ←ここ
↑のabcdefgの箇所は、どのように指定すればよろしいのでしょうか?
お手数ですが、よろしくお願いします。

> Userdir public_html
>
> <VirtualHost hostname>
> ServerAdmin ****@*****.cx
> DocumentRoot /home/ほにゃらら
> ServerName hostname
> Userdir abcdefg ←ここ
> </VirtualHost>

お礼日時:2005/06/16 12:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!