- 締切済み
Locationの部分をいじる
携帯サイトを作っています。 パスワード認証(1.cgi)→端末振り分け(2.cgi)という流れにしたいのですが、vodaとPCは問題なく各々の目的のページに飛べるのですが、i-modeがエラーがでてしまうようです。 振り分け先に指定しているURLなんかはちゃんと合っています。 どうも、i-modeでLocationが機能しないのが原因ではないかと思うのですが、cgiのいじり方が分かりません。 サポートBBSによると1.cgiの以下の部分を変えるそうなのですが if ($pass eq $password) { print "Location: $cgi\n\n"; exit; } の部分のLocationが機能しないのだと思います。 秘密cgiで表示する最初のページを、この部分で読み込み表示する方法や、この部分にcgiへのリンクを張る方法をとられてはいかがでしょう? ということで、具体的にどうしたらよいのか分かりません。(サポートBBSが実質停止状態なので・・・) わかる方いらしたら、ご教授いただければと思います。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- php504
- ベストアンサー率42% (926/2160)
検索していたらi-mode では、Locationに相対表記の URL は使用できないという記述を見つけました。というかLocationヘッダのURLはhttp://から書かないといけないと決められているので正常な動作といえます。 ということで print "Location: $cgi\n\n"; exit; の$cgiが相対URLになっているのではないでしょうか。
- moon_night
- ベストアンサー率32% (598/1831)
Location先のページはi-modeで問題なく開けますか? 基本的にLocationはサーバで行うため、キャリアにはあまり関係がないはずなのです。 飛び先のページそのものがi-modeでは開けない可能性もあります。
補足
ありがとうございます。ためしに、振り分けCGIのほうに直接アクセスしたら、ちゃんと飛び先のhtmがちゃんと開けたそうです。 なので、やっぱりパスワードCGIのほうに問題があるかと思います。
補足
ありがとうございます。 $cgiってこの場合、振り分けCGIのことですよね。 はじめに絶対URLでリンク先のhtmを書いてたのですが これでvoda○ i-mode×でした。 それでパスワードcgiの説明を読んだら $html="secret.cgi"; 秘密ファイル(パスワードが一致した場合にオープンするファイル)です。 ipasswd.cgiと同じフォルダに置いてください。 ※そこからリンクしてあるファイルは、別のフォルダでも構いませんが、 相対パス(../../×××.cgi)にしてください。 の表記があったので相対URLにしたんですが、これでも voda○ i-mode×でした。 うーもう、なにがなんだか・・・(>_<)