WebFormにアクセスした際にリダイレクトする - ASP.NET

WebFormにアクセスした際にリダイレクトするコードを紹介します。

概要

ASP.NETのWebFormアプリケーションで、WebFormのページにアクセスした際にすぐにリダイレクトさせたい場合があります。 この記事では、ASP.NETのWebFormアクセス時にリダイレクトするコードを紹介します。

実装方針

WebFormのPage_Load イベントにリダイレクト処理を実装します。

実装例: 302リダイレクト

コード

以下のASP.NET WebFormを作成します。
WebFormRedirect.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebFormRedirect.aspx.cs" Inherits="RedirectDemo.WebFormRedirect" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
         リダイレクトします。
        </div>
    </form>
</body>
</html>
WebFormRedirect.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace RedirectDemo
{
  public partial class WebFormRedirect : System.Web.UI.Page
  {
    protected void Page_Load(object sender, EventArgs e)
    {
      Response.Redirect("https://www.ipentec.com", true);
    }
  }
}

解説

WebFormのLoadイベントにリダイレクト処理を記述しています。
    protected void Page_Load(object sender, EventArgs e)
    {
      Response.Redirect("https://www.ipentec.com", true);
    }

実行結果

アプリケーションルート/WebFormRedirect.aspx のURLにアクセスします。リダイレクト処理が実行され、ページがリダイレクトされ、 リダイレクト先のページが表示されました。


レスポンスを確認します。302のステータスコードが返されてリダイレクト処理されていることが確認できます。

実装例: 301リダイレクト

301リダイレクトする場合の実装です。

コード

以下のASP.NET WebFormを作成します。
WebFormRedirectPermanent.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebFormRedirectPermanent.aspx.cs" Inherits="RedirectDemo.WebFormRedirectPermanent" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            リダイレクトします。
        </div>
    </form>
</body>
</html>
WebFormRedirectPermanent.aspx.cs
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace RedirectDemo
{
  public partial class WebFormRedirectPermanent : System.Web.UI.Page
  {
    protected void Page_Load(object sender, EventArgs e)
    {
      Response.Status = "301 Moved Permanently";
      Response.AddHeader("Location", "https://www.ipentec.com");
    }
  }
}

解説

WebFormのLoadイベントに301レスポンスコードのリダイレクト処理を記述しています。
301リダイレクトの詳細についてはこちらの記事を参照してください。
    protected void Page_Load(object sender, EventArgs e)
    {
      Response.Status = "301 Moved Permanently";
      Response.AddHeader("Location", "https://www.ipentec.com");
    }

実行結果

アプリケーションルート/WebFormRedirectPermanent.aspx のURLにアクセスします。 先の例と同様にリダイレクト処理が実行され、リダイレクト先のページが表示されます。

レスポンスを確認します。301のステータスコードが返されてリダイレクト処理されていることが確認できます。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2024-01-28
iPentec all rights reserverd.