2004年11月25日木曜日

iモード向けサイトでリダイレクト使う際は最後の/に注意

今日iモード向けのコンテンツで、QVGA端末かQQVGA端末かを判別して各端末用のページにリダイレクトするというスクリプトを書いたんですが、リダイレクトする際に必ず「ページが移動しました」のようなメッセージがでてしまうという現象に出くわしました。
今まで同じようなスクリプトを書いたときにはこんな現象が起きたことがなかったので、一瞬とまどいましたが、原因はなんてことなく、Locationで指定した飛び先のURLの最後に/(スラッシュ)がついていなかったからでした。
たとえば、http://hori-uchi.com/qvga/index.htmlにリダイレクトさせたくて、
>
print "Location: http://hori-uchi.com/qvga";
print "\n\n";
<
と記述すると、携帯のブラウザではまずhori-uchi.comの/qvgaというファイルを見に来るのですが、そのファイルがないので(ディレクトリなので)、次に/qvga/index.htmlを取得しようと試みます。どうやらこのファイルがないので・・・のあたりで、「ページが移動しました」のようなメッセージを表示するようです。/があるとないとで大違いなんですね。

2 件のコメント:

  1. こんにちわ。Gmailの際はお世話になりました。
    自分も先日同じような携帯用のリダイレクトページを作ったのですが同じ現象が起きて疑問だったのですが、なるほどそういうことだったのですね。参考になりました。

    返信削除
  2. gamenouさんこんにちは。
    /ぐらいは多めにみてほしいですよね。ちなみにAUだと/がなくても問題なくリダイレクトされました。

    返信削除