クライアントのせいじゃない 400 Bad Request

テスト用の新環境を構築してた時に 400 Bad Request がでて半日潰した話。

先に原因だけいうと「ホスト名に _ を使っていた」から。(-はOK)
× kata_ware.com
○ kata-ware.com

いままで dev.hogehoge.com みたいなドメインを使っていたテスト用サーバに
バーチャルドメインで dev_kataware.hogehoge.com を追加して別環境を提供しようとしたんだけど
いざ、DNS設定をして、
httpd/conf.d/vhost.conf的なものに書いて、
httpd -k restartして、
いざブラウザで dev_kataware.hohoge.comを見てみたら
404 Bad Request って言われて困惑しました。

404の原因についてググっても、
ブラウザ側に原因があるからキャッシュ消してみて、
って言われるばっかりで困ってたけど
原因がわかりました。

原因は最初に書いた通り
「ホスト名に_(アンダースコア)を使ってはいけない」
に反して使っていたからでした。

なんかRFC的に禁止してるけど、昔のapacheさんは許容していたらしく
2.4.25になって400を返すようになったらしい。

でも、nslookupとかで解決できちゃうし、いっそOKにしちゃえばいいのにと思った。
関係ないけど、メアドとかでもRFCの規則と実運用の違いでハマるケースあるよね
.(ピリオド)連続の禁止とか。

←よかったらクリックお願いします。

kataware の紹介

二児の父、職業SE、やりたいことはゲームと歌とアプリ作ったりサーバいじったり娘の服を作ったり色々あり過ぎて時間が足りなさ過ぎて病みそうだから娘に癒してもらってる。
カテゴリー: apache, SE備忘録, サーバ構築, とびだせ どうぶつの森   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です