質問: わからないこと ------- 今朝、.htaccessの設定のために検索して調べては.htaccessを上書きして試行・・・という作業を延々と繰り返していたところ、本現象に気が付きました。 codeigniterではindex.php/以降のリクエストからコントローラが実行されますが、ここに存在しないクラスやメソッドの名前が入力された場合には404エラーになるはずが、余計な「.」や「.」が入力されてもページが表示されてしまいました。 「http://example.com」は末尾にドットを足して 「http://example.com.」でも表示され、 「http://example.com/form/」は文字中にドットを足して 「http://example.com/.f.o.r.m./」でも表示されました。 さらに 「http://example.com////.f.o.r.m./」というURLでもアクセスできてしまいました。 このような「.」や「/」が含まれたリクエストが送られてきた場合、どのように対処すればよいのでしょうか。 URL中に無数の「.」や「/」が含まれているにも関わらず目的のページにアクセスできてしまうのはなんだか気持ちが悪いです。 やってみたいこと -------- 「http://oreoredomain.jp.」や 「http://example.com///.f...o..r..m./」 などのリクエストに対して404エラーを出すようにしたいです。 .htaccessで処理できるものなのか、 それともアプリケーション側をいじる必要があるのか、 ヒントだけでも頂けたら嬉しいです。
回答: > > http://oreoredomain.jp. > > > これについては、URLを解釈するのは**ブラウザ側**ですし、RFC 3986上も > > DNS における完全修飾ドメイン名{fully qualified domain name} の最も右のドメインラベルは単一の "." を付ける事ができ > > > となっているように(和訳)、**アクセスできてしかるべき**ものです。