RealPath:
WebPath:
2017/06/12 13:58 (JST) 更新
ルーティング >>

リライト・リダイレクト

Contents

※この記事は ASP.NET Core でのみ有効な内容です。

横断的なリライト・リダイレクト設定

Startup において横断的なリライト・リダイレクトの設定を行うことができる。

必要な NuGet パッケージを導入

PM> Install-Package Microsoft.AspNetCore.Rewrite

リライト・リダイレクトの設定

Startup.cs
....
using Microsoft.AspNetCore.Rewrite; // ★ここを追加
....
public class Startup
{
    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        ....

        // ★ここを追加
        {
            // リライト・リダイレクトの設定
            var options = new RewriteOptions();

            //「http://~/~hoge」へのアクセスをすべて「http://~/~fuga」にリライト。
            options.AddRewrite("hoge$", "fuga", false);
            //「http://~/~abc」へのアクセスをすべて「http://~/~abc/」にリダイレクト。
            options.AddRedirect("abc$", "abc/");
            //「http://~/~」へのアクセスをすべて「http://~/~/」にリダイレクト。
            options.AddRedirect("(.*[^/])$", "$1/");

            app.UseRewriter(options);
        }

        app.UseStaticFiles();
        ....
        ....
  • AddRewrite … リライト元、リライト先を設定。URL は遷移させずに結果表示を変える。第3引数を true にすると、そのルールがマッチした場合に、それ以下のルールは適用されない。
  • AddRedirect … リダイレクト元、リダイレクト先を設定。リダイレクトが発生し URL も変わる。
  • AddRewrite, AddRedirect の第1引数には正規表現が使用可能。