私はサイトを持っています、例えばexample.com
。ユーザーは独自のサブドメイン(1ユーザー-1サブドメイン)を設定し、独自のスクリプトをアップロードできます。 http://somedomain.example.com/xyzzy.php
は/www/somedomain/xyzzy.php
にマッピングされます
現在、これらのドメインの一部では、Internet Explorer 7はCookieを受け入れない/受け入れることができません。 Fiddlerで確認:サーバーはSet-Cookie応答を正しく送信しますが、CookieはIE-JSまたは開発者ツールでは表示されません。リクエストに応じて、IE7はCookieヘッダーも送信しません。
Cookieはユーザーのドメインに設定され(例:somedomain.example.com
)、パスは/
、異なる有効期限オプション(過去、未来、現在、「0」)を試しましたが、HttpOnlyではなく、安全ではありません。
FF、Opera、Safari、およびChromeはすべて問題なく動作します。
なぜIEはCookieを無視しますか?
サブドメインの1つがアンダースコアを使用していますか? IEには、 RI RFC に従わないサブドメインからのCookieの受け入れに問題があります。
RFC1035 (ドメイン名-実装と仕様)によると:
[ドメイン名]は、文字で始まり、文字または数字で終わる必要があり、内部文字として文字、数字、ハイフンのみを使用する必要があります。
一部のドメインにはアンダースコア( "_")が含まれていたことがわかりました:some_domain.example.com
。これはRFCに違反していますが、他のすべてのブラウザーは正常に動作します。
MSIE 7、アンダースコアのあるドメインでは、そのホストのすべてのCookieを静かにドロップし、新しいCookieの受け入れを拒否します。
唯一の解決策は、RFC準拠のドメインを使用することです(すべての「_」を「-」に置き換え、RewriteRuleを設定して、トラフィックが準拠ドメインにリダイレクトされるようにします)。
この問題は、ドメイン名の下線だけでなく、数字で始まるドメイン名にも当てはまります。したがって、1aaaaaaa.tld
は実際には非標準のドメイン名であり、IEはCookieを拒否します。
www2.1aaaaaaa.tld
のみを使用して解決し、1aaaaaaa.tld
内のwww.1aaaaaaa.tld
および.htaccess
ホストの書き換えルールを追加しました。それが本当に標準に準拠したソリューションとして適格であるかどうかはわかりません....とにかく、それはクッキーの問題を解決したようです。
それが誰かを助けることを願っています!