お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2013-04-10 23:27:06

oosamuuy
メンバ
登録日: 2009-03-09

www.exaple.comとexample.comの両方で接続

お世話になります。
現在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では問題なく接続できているので、大きな問題は今のところないのですが。。。

もし原因などわかる方いましたら、ご教授願います。
よろしくお願いします。

オフライン

 

#2 2013-04-11 17:45:16

oosamuuy
メンバ
登録日: 2009-03-09

Re: www.exaple.comとexample.comの両方で接続

すみません。
なんか文字化けしているようなので、もう一度書きます。
www.example.com/index.htmlと明示的にファイル名を指定してアクセスすると「Not Found」になってしまいました。
という文章になっています。

よろしくお願いします。

オフライン

 

#3 2013-04-11 17:46:21

oosamuuy
メンバ
登録日: 2009-03-09

Re: www.exaple.comとexample.comの両方で接続

ごめいなさい。また化けました。
www.example.com/index.html
と明示的にファイル名を指定してアクセスすると「Not Found」になってしまいました。
で大丈夫でしょうか。。。

オフライン

 

#4 2013-04-12 00:03:22

epii
メンバ
登録日: 2008-12-11

Re: www.exaple.comとexample.comの両方で接続

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/ にエイリアスされてしまっているのだと思います。

オフライン

 

#5 2013-04-12 10:25:24

oosamuuy
メンバ
登録日: 2009-03-09

Re: www.exaple.comとexample.comの両方で接続

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になるということは、間違いなく正規表現がおかしい…ということになりそうです。

いろいろ試行錯誤してはいるのですが、
もし正規表現詳しい方いましたら、ご教授願いいます。

オフライン

 

Board footer

Powered by FluxBB