ASP.NET Core でリダイレクトする (301,302 リダイレクトの実装) - ASP.NET Core

ASP.NET Core で301リダイレクトするコードを紹介します。

概要

ASP.NET Coreでリダイレクトする場合は、レスポンスのHttpResponse オブジェクトの、Redirect メソッドを呼び出します。
なお、301リダイレクトする場合は、Redirect メソッドの第二引数にtrueを指定します。
メモ
RazorPagesでリダイレクト処理を実装する場合はこちらの記事を参照して下さい。

書式

302リダイレクト

 (レスポンスコンテキストのHttpContextオブジェクト).Response.Redirect("(リダイレクト先URL)");
 (レスポンスコンテキストのHttpContextオブジェクト).Response.Redirect("(リダイレクト先URL)", false);

301リダイレクト

 (レスポンスコンテキストのHttpContextオブジェクト).Response.Redirect("(リダイレクト先URL)", true);

プログラム例

ASP.NET Coreアプリケーションを作成します。

コード

下記コードを記述します。
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "Hello World!");
app.MapGet("/redirect", async context =>
{
  context.Response.Redirect("http://www.ipentec.com", true);
  await context.Response.CompleteAsync();
});

app.Run();

解説

MapGetメソッドを利用して、/redirect URLを実装します。
RequestDelegate内で、Response.Redirect() メソッドを呼び出し、リダイレクトします。第二引数にtrueを指定することで301リダイレクトになります。
app.MapGet("/redirect", async context =>
{
  context.Response.Redirect("http://www.ipentec.com", true);
  await context.Response.CompleteAsync();
});

実行結果

プロジェクトを実行します。Webブラウザが開きます。今回レスポンスされたデータを確認しますので、DevToolを表示します。
表示後、(アプリケーションルート)/redirect のURLにアクセスします。


リダイレクト処理が実行され、指定したURLにリダイレクトします。レスポンスデータを確認すると、最初に redirect の処理があることが確認できます。


リダイレクトの項目のヘッダを確認します。ステータスコードの値が "301" になっており、301リダイレクトされたことが確認できます。


ASP.NET Core で301リダイレクト処理を実装できました。

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