※この記事は6年以上前の記事です。
現在は状況が異なる可能性がありますのでご注意ください。
どうも、最近釣りにハマってるみやびです。
先輩に勧められてから、ちょいちょい、便乗してます。
先日も行ってきました。
アウトドアスポーツハマるなんて、絶対ないと思ってましたが、楽しい。
さて、そんなみやびの趣味の話はどうでもよくて、表記の件。
ウェブ長いことやってるけど、400番のエラーなんて初めて見たよ。
404とか、403とか500とかはよく見るけど、400番って・・・。
後輩のローカルサーバー構築してた際に、起きたエラー。
マシンがMacなので、MAMPにて、いつも通りにヴァーチャルホストを立ててやろうとしたが、
今回のエラーが出てきた。
問題のホスト名は、
localhost.2018hogehoge
だ。
様々試したが、うまくいかず、
結局、先頭のlocalhost.を抜いたらうまく動いたので、
とりあえず、それ以降、localhost.はつけない方針にしたが、
釈然としない。
それもそのはず、Windowsマシンで、XAMPPを使用している時は、
いくらlocalhost、とつけたホストが林立してても、全然動いていた。
ましてや、今回と同じホスト名でも動いた。
MAMP特有なのかもしれないと、後輩が帰った後、自身のMacマシンとMAMPを使い調査してみたが、
下記のエントリーに当たった。
Apache ローカル環境 400 Bad Request になるとき
どうやら、ホスト名に"_"(アンダースコア)は使えないのは有名なようだ。
しかし、今回のケースでは"_"はついてない。
まてよ、と思い、
localhost.hogehoge
にすると、普通に動いた。
そう、第二ラベルに原因があったのだ。
もしかしたら、MacでMAMPを使用したローカル環境のみかもしれないが、
第二ラベル以下(ラベルとは、ホスト名においての、.(ピリオド)で区切られた文字列のこと)で、先頭に数字を使用すると、400番エラーが発生するのだ。
ちなみに、第三ラベルに使用しても、同じくエラーが起きた。
localhost.hoge.500mogu
とか。
ちなみに、あくまで先頭に使用した場合だけで、
localhost.hoge500
とかでは普通に動く。
あと、第一ラベルで、先頭が数字でも、動く
500hogemogu.local
うーん、原因がわかったがやはり釈然としない。
おそらく、第二ラベル以下だと、
ローカルサーバーの方で、
物理アドレス(IPアドレス)とごっちゃになるのではないだろうか。
今のところそれしか思い浮かばない。
とにかく、この件、ググってみても、ピンポイントなエントリーが見当たらないところからみると、
記事中腹でも述べたとおり、Macマシンで、MAMPを使用した時に限るのだろう。
(だって多分そんなホスト名、世の中にゴロゴロあるはずだし)
もし、ローカルにてホスト名によって、400エラーが出るようなら、
本エントリーの事を試してみてほしい。
ってわけで、最後まで真面目な記事でした。
コメントする