Apache 2.2 ,PHP5.3 Codeigniter と、mod_rewrite を使用しています。
以下のようなjavascriptで飛び先を指定しています。
<input ... onclick="javascript:location.href='/controler/csv/?&name=あああ&date=20130720';">
こんなコードですが、IE7と8 で、画像のエラーが出ます。(IE9, FF , chrome などでは正常)
mod_rewrite と Codeigniterを使わずに、
<input ... onclick="javascript:location.href='method.php?&name=あああ&date=20130720';">
で飛び先をしてすると問題なくサイトを開くことができるですが。
mod_rewrite と Codeigniterは、どうしても使用しなければなりません。
location href ie8 エラー などでググっては見ましたが、自分では解決できないと
思いました。
どなたか知恵をください。お願いします。
そのご質問だとどうしても推測になってしまうので、ソースを見せてくれればなあ、と思います。
HTMLは読み込めるが画像がリンク切れ、ということなので相対パスで参照している画像ファイルが読み込めてないような気がします。
表示されていない画像を右クリックするなどして、どのようなパスで画像にリクエストが飛んでいるのか確認してみるというのはいかがでしょうか。
IE7,8の表示が異なるということなので、ひょっとするとBASE要素によるものかもしれません。
あと、だわかきさんの説明は間違っているような気がします。RFC違反じゃないと思いますが。
どのようなCodeigniterとmod_rewriteを書いているのか分かりませんけど、
/controler/csv/?&name=あああ&date=20130720
この部分の表記が RFC 1738 Uniform Resource Locators (URL) に未定義の書き方です。
ftp://ftp.isi.edu/in-notes/rfc1738.txt
?や&はファイル名の後に書かなくてはいけません。
またまた IE9, FF , chrome では動いているのでしょうが、他のブラウザでどのように動くかは保証されません。
皆様
対策しましたので取り急ぎ報告します。
試行錯誤した末、location.href='..スマートURL..' を諦め、
<a href="/syouhin/csv/?....
で回避することにしました。
また、IE8 には、レスポンスヘッダー"Cache-Control: public" と "Pragma: public" は、必要と思われます(釈迦に説法ですかね)。
Lhankor_Mhyさんには、とても有意義な情報を頂きましたし勉強になりました。
今回は、これで閉めさせていただきたいと思います。
本当にありがとうございました。
本題とは関係ないのでコメント欄で。
; HTTP
httpurl = "http://" hostport [ "/" hpath [ "?" search ]]
hpath = hsegment *[ "/" hsegment ]
hsegment = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
search = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
と書いてあるので、「?や&はファイル名の後に書かなくてはいけません」は間違いだと思いますよ。仕様に従えばhpathはヌルテキストでも問題ないはずです。
なにか錯誤があればご指摘下さい。