このスレッドは解決済です(未解決に戻す場合はこちら)
<<戻る

/home/*/public_htmlについて このメッセージに返信する
日時: 2009/03/19 19:52
名前: 高橋
URL:
こんばんわ。
みなさん。
お知恵をお借りしたいと思い、書きこみました。

表題のように、httpd.confに

UserDir public_html
:
<Directory /home/*/public_html>
AllowOverride All
Options MultiViews ExecCGI Includes SymLinksIfOwnerMatch
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

なんて設定し、
http://hogehoge.com/~fuga
でページが表示されるようになったのですが、
fugaユーザの作成したhtmlファイルの中で、ルートを指定、
例えば、
<img src="/img/hoge.jpg">
なんて書くと、
http://hogehoge.com/img
を見に行ってしまい、相対パスで
<img src="../img/hoge.jpg">
と書かないと、
http://hogehoge.com/~fuga/img
を参照してくれません。

これをルートを指定しても、~fuga配下のファイルを参照するように設定するには、どのようにしたらよいのでしょうか?

お知恵をお貸しください。
よろしくお願いします。
記事編集 編集
Re: /home/*/public_htmlについて このメッセージに返信する
日時: 2009/03/19 22:27
名前: ももこ
URL:
<Directory /home/*/public_html>
AllowOverride All
Options MultiViews ExecCGI Includes SymLinksIfOwnerMatch
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
この下に下記を記述すると表示されると思います。

  AddHandler image/jpeg .jpeg .jpg
AddHandler image/gif .gif
AddHandler image/png .png
AddHandler text/html .html .shtml .htm .css .txt .log

要するに、標準最初から画像ファイルやその他を表示させるように設定したらOKです。
他の方法もありますが、これが簡単です。
記事編集 編集
Re: /home/*/public_htmlについて このメッセージに返信する
日時: 2009/03/20 12:52
名前: 中学生管理者
URL:
質問の意味がよくわからないのですが

例えば、DocumentRoot を /var/www/html にしている場合は
<img src="/img/hoge.jpg"> は /var/www/html/img/hoge.jpg を読みに行きます。
/home/fuga/public_html/img/hoge.jpg を読みにはいきません。

絶対アドレス指定をしたいなら
<img src="http://hogehoge.com/~fuga/img/hoge.jpg">
と全部書くのがいいかも。

DocumentRootを書き換えてもいいのかもしれませんが、DocumentRootは
ユーザーごとにあるわけじゃないので注意が必要です。
(ユーザーごとにバーチャルホストにすればそれぞれ定義できます。)

ということじゃないのかなと。。。外していたら無視してください。
記事編集 編集
Re: /home/*/public_htmlについて このメッセージに返信する
日時: 2009/03/20 14:57
名前: stranger
URL: http://ja.528p.com/

><img src="/img/hoge.jpg">
>なんて書くと、
>http://hogehoge.com/img
>を見に行ってしまい、相対パスで
><img src="../img/hoge.jpg">
>と書かないと、
>http://hogehoge.com/~fuga/img
>を参照してくれません。

<img src="img/hoge.jpg">
と書けば良いのでは?

/を先頭に入れるとdocument rootからの絶対パスになる
記事編集 編集
Re: /home/*/public_htmlについて このメッセージに返信する
日時: 2009/03/20 17:57
名前: 高橋
URL:
皆さん、ありがとうございます。
ユーザディレクトリを有効にした場合、絶対パスでルートを指定できない仕様ということが分かりました。
/home/*/public_html がドキュメントルートになる、という記述をしているサイトがあり、ドキュメントルートなら、絶対パスで / を指定すればそのユーザディレクトリのルートを見に行くと勘違いしていました。
ですので、自分の設定ミスか何かで反映されないのだと思っていました。
皆さんのおかげで勉強になりました。
ありがとうございました。
記事編集 編集
Re: /home/*/public_htmlについて DocumentRoot このメッセージに返信する
日時: 2013/01/23(Wed) 13:56
名前: 恋山
URL:
似た質問だと思いますが、質問します メインホストから追加ホストのページが見えてしまいます
バーチャルホストのDocumentRootの設定を
( http://centossrv.com/apache-virtualhost.shtml より一部分を転載します)
-ここから-
[root@centos ~]# vi /etc/httpd/conf.d/virtualhost-centossrv.com.conf ← メインホスト用バーチャルホスト設定ファイル作成
<VirtualHost *:80>
ServerName centossrv.com
DocumentRoot /var/www/html
</VirtualHost>

[root@centos ~]# vi /etc/httpd/conf.d/virtualhost-virtual.com.conf ← 追加ホスト用バーチャルホスト設定ファイル作成
<VirtualHost *:80>
ServerName virtual.com
DocumentRoot /var/www/html/virtual
ErrorLog logs/virtual-error_log
CustomLog logs/virtual-access_log combined env=!no_log
</VirtualHost>
-ここまで-

同じ設定にしました。
ウェブブラウザーで http://centossrv.com/virtual とメインホストのURLに追加ホストのDocumentRootを入力すると
そのまま追加ホストのページが表示されてしまうんです。メインホストから追加ホストのページが見れてしまうんです。
/var/www/html配下にvirtualディレクトリが有るので、当然そうなるんだと思います

根本的にわたしが誤解しているのでしょうか 追加ホストのDocumentRootを/var/www/html/virtual から/var/www/hoge
のように変更、設定すれば解決すると思うんです。うまいこと追加ホストをドメイン一致しているときのみ表示 というふうにできるのですか
記事編集 編集
Re: /home/*/public_htmlについて このメッセージに返信する
日時: 2013/01/25(Fri) 07:26
名前: ゆりこ姫
URL:
恋山さんへ
他人の質問に便乗なんかしないで、新しく題名つけて新スレを立てましょう。
参考に読んでほしいならリンクを張ればいいです。
その方が絶対にいいですよ
「済」だと読まない人もいるだろうし、回答者だって書くのを躊躇いますわ。

(何でも回答が付くと思ってるかもしれないけど、仕事じゃないから
現実は回答者が質問をチョイスしてるのですわ)
記事編集 編集
件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

※質問を投稿後に自己解決された場合は、原因と行った対処を具体的に書き込み下さるよう、よろしくお願いします。

- WEB PATIO -