ホスト名にアンダーバーを含むとIEでcookieが作られない
という件で、数時間たっぷりはまってしまいました。
「hoge_test」みたいなホスト名をhostsで指定してアクセスするようなローカルのテスト環境を作っていて、自分が動作確認していた時には問題無かったのに、同じ様な環境を用意したチームのメンバーがテストするとセッション機能が思うように動作しない。
始めはちゃんと動くはずという先入観で、単にソースが同期されていないのでは、とかPHP周りの設定が違っていないかとか、違う方向に頭が行っててどうにも糸口がつかめなかったのですが、ようやく動作しているのはFirefoxで実行した時であること、IEからだとセッション発行時にCookieが作られていないことに気付きます。
それをキーワードに調べを進めたところ、表題の件が判明したというわけです。ホスト名を「hogetest」のような名前に修正したらあっさり解決・・・。確認した限り、サブドメインやドメインにアンダーバーを含むアクセス時にはIE6、IE7ではcookieが作られませんでした。(Firefoxはその点ゆるいようですね。)
そもそもRFC的にドメイン名のアンダーバーの使用は許されていないようで、それに準拠したIEの納得の仕様というわけだったんですね。どうせテスト環境だとアクセスできているのをいいことに、全くもって名前に気を配っていなかった自分に反省。
- askeet再チャレンジ(1日目~3日目) - 2009年2月23日
- symfonyでPDO接続をする - 2009年2月18日
- 標準URLを定義するrel="canonical"属性 - 2009年2月14日
- 「読んでる?」がGoogleに嫌われてしまった - 2009年2月14日
- Gmailの機能追加 - 2009年2月05日
トラックバック(0)
このブログ記事を参照しているブログ一覧: ホスト名にアンダーバーを含むとIEでcookieが作られない
このブログ記事に対するトラックバックURL: http://blog.knockoutmarch.com/mt3/mt-tb.cgi/206
コメントする