スポンサーリンク

Webページをリダイレクトする方法

 Webアプリを作っていると、意図的にページをリダイレクトしたい状況ってのがあります。

 例えば、ログインを必要とするページに認証されていないリクエストが来た場合に、ログインページへリダイレクトするとかですね。

 そんなわけで、Webページをリダイレクトする方法の覚え書きです。

 なお、検証は Windows XP SP3 上の Firefox 3.5.7 で行いました。また、リダイレクト先のサンプルURLとして「http://www.mukairiku.net/」を指定しています。

 まず最も高速で、ユーザーがリダイレクトを止められないと思われるのが、HTTPレスポンスヘッダーを使う方法です。

 やり方は簡単で、「Location: リダイレクトしたいURL」というヘッダーを返すだけです。PerlでCGIプログラムを書くと、

print "Location: http://www.mukairiku.net/\n\n";

 こんな感じになります。この場合、通常の「Content-type: text/html」というヘッダーは出力しません。

 お次はJavaScriptを使う方法です。HTMLファイルのHEADタグ内に書くと、ページを表示する前にリダイレクトしてくれます。

<script type="text/javascript">
  location.href='http://www.mukairiku.net/';
</script>

 JavaScriptを使うメリットとしては、クライアントサイドでプログラミングできることに尽きるかと思います。

 ページを表示させたあとでリダイレクト先を変えたりとか、任意のタイミングでリダイレクトさせたりとか。ボタンと組み合わせてアンカータグの代わりに使うって手もあります。

 デメリットは、ブラウザのJavaScriptがOFFになってると動かないことですね。当たり前ですけど。

 最後は(X)HTMLのMETAタグを使う方法です(サンプルはXHTMLで記述)。

<meta http-equiv="refresh" content="0; url=http://www.mukairiku.net/" />

 通常はこれをHTMLファイルのHEADタグ内に書きます。FirefoxだとBODYタグ内に書いても動きましたが、他のブラウザでは未確認です。

 メリットは、JavaScriptがOFFでも動くことですね。CONTENT属性の最初に指定する数字(上の例だと'0')で、ページを表示してからリダイレクトするまでの秒数を指定できます。

 ただし、一旦ページを表示してからリダイレクトするため、ユーザーにリダイレクトを意識させたくない場合には不向きかと。

 逆に「〇秒後にホゲホゲのページにジャンプします」といった場合には便利ですね。

 その他、Apache HTTP Serverの機能を使う方法もありますが、自分がまず使わないので、今回はパスということで。

追記:2011/05/21
 Apache の .htaccess を使用したリダイレクトについては、こちらの記事をご参照ください。

スポンサーリンク
コメント
Verify your Comment
Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

コメントを投稿
トラックバック

このページのトラックバックURL:
https://www.typepad.com/services/trackback/6a01310f1f31c0970c0120a8ba9471970b

このページへのトラックバック一覧 Webページをリダイレクトする方法:


プロフィール


  • 書いてる人:夢界 陸

    名古屋在住のおっさん。
    プログラミングやガジェットの話など、 日々の興味を徒然と綴っています。



    Twitterやってます @mukairiku

    運営サイト
    www.mukairiku.net

ブログ内検索

Licenses

  • Creative Commons License

OTHER

  • このブログのはてなブックマーク数

Blog powered by TypePad

スポンサーリンク