
Ubuntu日本語フォーラム

ログインしていません。
お世話になります。
現在Apache2の設定をしているのですが、www.exaple.comとexample.comの両方でアクセスできるようにしていますが、
userdir.confの設定で、チルダを省略した形でアクセスできるようにAlias Matchの設定をしましたら、
/var/www/で接続するドメインがwwwなしのexample.comでしか接続できなくなってしまいました。
詳細申しますと、
/mods-available/userdir.conf内に、
AliasMatch ^/([^/]+)(.*) /home/$1/public_html/$2
を設定して、
www.example.com/~user/
を
www.example.com/user/
で接続できるようにしました。
そうしたら、元々設定していた、
/var/www/のDucumentRootへの接続が、
www.exaple.comとexample.comの両方で接続可能であったものが、
example.comのみでの接続になってしまいました。
www.exaple.comで接続すると、インデックスの一覧が表示されてしまい、更に
www.exaple.com/index.htmlと明示的に書いて接続してみると、なぜだか「Not Found」になってしまいました。
原因がなかなかわからなくて、いろんなAliasなど設定してみましたが、何ともしっくりいかない感じです。
example.comでは問題なく接続できているので、大きな問題は今のところないのですが。。。
もし原因などわかる方いましたら、ご教授願います。
よろしくお願いします。
オフライン
すみません。
なんか文字化けしているようなので、もう一度書きます。
www.example.com/index.htmlと明示的にファイル名を指定してアクセスすると「Not Found」になってしまいました。
という文章になっています。
よろしくお願いします。
オフライン
ごめいなさい。また化けました。
www.example.com/index.html
と明示的にファイル名を指定してアクセスすると「Not Found」になってしまいました。
で大丈夫でしょうか。。。
オフライン
oosamuuy による投稿:
現在Apache2の設定をしているのですが、www.exaple.comとexample.comの両方でアクセスできるようにしていますが、
www つきのものと www なしのもので挙動が違うため、両者の設定で何か相違点があると思われますが、
これは具体的にどのような設定をされたのでしょうか?
また Apache のログにはどのような内容が吐かれているでしょうか?
oosamuuy による投稿:
AliasMatch ^/([^/]+)(.*) /home/$1/public_html/$2
(中略)
www.example.com/index.html
と明示的にファイル名を指定してアクセスすると「Not Found」になってしまいました。
これは index.html 部分が正規表現の ([^/]+) にマッチし、正規表現の (.*) は空文字にマッチするので、
/home/index.html/public_html/ にエイリアスされてしまっているのだと思います。
オフライン
epiiさん
ありがとうございます。
正規表現自体が違うんですね。。。いつも試行錯誤なので面目ないです。
今現在の設定は、AliasMatch ^/([^/]+)(.*) /home/$1/public_html/$2をuserdir.confの一番下に書いています。
各ユーザーは問題なく期待どおりに(チルダなし)の接続ができるようになっています。
また、訂正なのですが、
www.example.com
example.com
の双方が同様にインデックスのリストが表示されてしまいます。(index of ~というやつです。)おそらくキャッシュか何かだったのかもしれません。すみません。
ログをみるとepiiさんの全く言うとおりでして、
File does not exist: /home/user/www/index.html
が連発しておりました。
www.example.com/index.html
だけでなく、
www.example.com/user/index.html
というように直接アクセスした場合もindex.htmlが存在するのにNot Foundになるということは、間違いなく正規表現がおかしい…ということになりそうです。
いろいろ試行錯誤してはいるのですが、
もし正規表現詳しい方いましたら、ご教授願いいます。
オフライン