• ベストアンサー

URLでフォルダの最後のスラッシュを省略した時の挙動

Apache サーバを立ててみました。 一応、普通に動いているのですが、サイト配下のフォルダにアクセスする際、 URLの最後のスラッシュを付け忘れるとドメインの www が除去されて、「ページが見つかりません」に なってしまいます。 OK → http://www.example.jp OK → http://www.example.jp/hoge/ http://www.example.jp/hoge でアクセス(最後のスラッシュを付けない)すると http://example.jp/hoge/ となってしまうのはなぜ? Apacheの設定?

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

http://www.example.jp/hoge としたときに通常はhogeというファイルがないので 404エラーを返すところ、301エラーでフォルダ情報をかえしてきます。 このときhttpd.confで指定されたServerNameを利用するので その設定をしておかないといけません。 telnetでポート80にアクセスして手動でhttpの通信をトレースすると 挙動が理解できます

naopontan
質問者

お礼

理由は理解できました。ありがとうございます。 telnet で確認しましたが、301 を見ることは出来ませんでした。 (普通に 404 のページが見えるだけ) やり方がまずかったのかな? 私のやったログ % telnet www.example.jp 80 GET /hoge[Enter] <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>404 Not Found</TITLE> </HEAD><BODY> <H1>Not Found</H1> The requested URL /webmail was not found on this server.<P> </BODY></HTML> Connection closed by foreign host. あと、少し話しはソレますが、 http://www.example.jp/http://example.jp/ を受付けるようにした場合、各々、そのままの形で配下のコンテンツを 見せるのが良いのか? それとも http://example.jp/http://www.example.jp/ に 変換して、以降をブラウジングさせるのか? が疑問になりましたが、この件に関しては知識不足なので勉強して出直してきます。 (アドバイス頂ける事に越した事は無いですがヒント頂ければ幸いです)

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

>telnet で確認しましたが、301 を見ることは出来ませんでした。 その、www.example.jp というのはサーバーの本名ですか?複数のホスト名が付いていて、VirturalHost機能で複数のサイトをサービスしている場合、お書きのアクセス(HTTP/0.9)だと本名のホストとしてのアクセスになります。 その場合は、HTTP/1.1でアクセスします。 GET /hoge HTTP/1.1 Host: www.example.jp (空行)

naopontan
質問者

お礼

ありがとうございます。 仰るとおり、VirtualHost です。 telnet の確認もOKでした。 さすが、「自信あり」の回答ですね。 高度なスキルを持った notnot 様、ならびに yambejp 様、 ありがとうございました。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>(普通に 404 のページが見えるだけ) >やり方がまずかったのかな? 不安になって、ちょっと試してみましたが、私の環境では Apache1.3系も2系も301エラーが返ってきてますね 環境依存の可能性は否定できませんが、特に設定をしなければ 301エラーを返すのがデフォルトだったと記憶しています www.example.jpとexample.jpはサブドメインが異なるので、 一意性をたもつためにも完全に分けた方が間違いないのでは? (仮にDNSがまじめに同じAレコードをかえしたとしても) とくにクライアント側から見れば、キャッシュするファイルや cookie情報などすべて別で管理されるのですから・・・。 あるいみexample.jpでアクセスされても返答しないくらいの 設定が好ましいような気がします。

naopontan
質問者

お礼

> とくにクライアント側から見れば、キャッシュするファイルや > cookie情報などすべて別で管理されるのですから・・・。 なるほど。気付きませんでした。 > あるいみexample.jpでアクセスされても返答しないくらいの > 設定が好ましいような気がします。 ふむふむ。後は好みの問題になるのかな。 私の場合は example.jp でアクセスされたら www.example.jp にリダイレクト が良いかな。(「同一のドメインのサイトにアクセスしに来た」という観点で) ともあれ、大変勉強になりました。ありがとうございます。謝々。

関連するQ&A