roncansan
roncansan

Reputation: 2380

How to redirect .ASPX pages to .NET Core Razor page

We are moving a big asp.net web site to .NET Core Razor pages site. All over the internet there are links that point to our site and we want those links to work after our migration. We will kept the same url format, but without the extension .aspx.

Summary, we want our old url:

example.com/item.aspx be handle by .net core razor page, as

example.com/item

Upvotes: 2

Views: 1002

Answers (1)

Zhi Lv
Zhi Lv

Reputation: 21656

You could use the URL Rewriting Middleware to remove the ".aspx" extensions.

Check the following code: Use AddRedirect to create a rule for rewriting URLs

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
            // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
            app.UseHsts();
        }

        //using Regex match the .aspx extension and remove it.
        var options = new RewriteOptions()
                .AddRedirect(@"(\w*)(.aspx)", "$1");
        app.UseRewriter(options);

        app.UseHttpsRedirection();
        app.UseStaticFiles();

        app.UseRouting();

        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapRazorPages(); 
        });
    }

Then, the screenshot like this:

enter image description here

Upvotes: 5

Related Questions