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

httpd.confの正規表現 このメッセージに返信する
日時: 2015/07/13(Mon) 23:13
名前: 黒松
URL:
お世話になります。
Apacheのユーザディレクトリの設定をしています。
(1)ユーザhogeだけは、/home/hoge/wwwにしたく、
(2)その他の複数ユーザは、/home/*/public_htmlにしたいのです。
その際のhttpd.confの記述についてお教えください。
DocumentRootの設定は下記で合っていますでしょうか。
そもそもDocumentRootに正規表現が使えるでしょうか。

(1)DocumentRoot "/home/^(?!.*hoge).+$/public_html"
(2)DocumentRoot "/home/hoge/www"

よろしくお願いします。
記事編集 編集
Re: httpd.confの正規表現 このメッセージに返信する
日時: 2015/07/15(Wed) 16:40
名前: 朝青龍
URL:
>DocumentRootの設定は下記で合っていますでしょうか。
>そもそもDocumentRootに正規表現が使えるでしょうか。

まずマニュアルにあたってみるとか。
http://httpd.apache.org/docs/2.2/ja/mod/core.html#documentroot
http://httpd.apache.org/docs/2.2/ja/urlmapping.html
いくつか実現方法があるようです。
記事編集 編集
Re: httpd.confの正規表現 このメッセージに返信する
日時: 2015/07/16(Thu) 12:19
名前: stranger
URL: http://ja.528p.com/
DocumentRootはサイトのディレクトリ構成の / を指定します
たぶん一つのURLに一つのDocumentRootだと思うよ

ユーザのディレクトリを指定するなら

UserDir public_html www

複数指定でき、順番に検索します
http://sample.com/~hoge/でアクセスした場合
public_htmlがなければwwwを探します
wwwを最初に検索させるなら、/home/hoge/public_htmlをつくらない
制御は
<Directory "/home/hoge/www">
</Directory>
でできると思う

正規表現については
ldd /bin/httpd で
(httpdについては別のディレクトリにあるかも)
libpcre.so.0 => /lib/libpcre.so.0
libpcre.soが動的にリンクされているなら
perlの正規表現が使えます
記事編集 編集
Re: httpd.confの正規表現 このメッセージに返信する
日時: 2015/07/17(Fri) 10:23
名前: 通りすがり
URL:
スクリプト使う時に
正規表現って色々便利なんだけど、
なんかあったらこわいから
素直に動いてほしいのであんまりつかわないかな。
記事編集 編集
Re: httpd.confの正規表現 このメッセージに返信する
日時: 2015/07/17(Fri) 15:26
名前: 黒松
URL:
みなさま

拙い質問にご返答くださりありがとうございます。
マニュアル等調べてみましたが、そもそもDocumentRootの概念が間違っていたようです。
strangerさんのおっしゃるように、1URLに1個(バーチャルホストを使うならその分)なのですね。
正規表現が使えるのは、<Directory "/home/xxx/yyy">で、
使う場合は<Directory ~ "/home/xxx/yyy">のようにチルダを入れるそうです。

通りすがりさん
確かに、ちゃんと考えてやらないと、想定外の動作に繋がりますね。
私も、ごく単純なことしかしないです。というか、私自身がごく単純な表現しかできないです(^^;
今回のように、たった4文字を除外するだけでも、考えるのがとても面倒くさいです。

本件は一旦クローズとさせていただきます。
また何かありましたらよろしくお願いします。
記事編集 編集
件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

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

- WEB PATIO -