簡體   English   中英

ASP.NET Core 6 Razor 頁面將沒有 www 重定向到帶有代碼 301 的 www

[英]ASP.NET Core 6 Razor Pages redirect no www to www with code 301

今天我的網站可以通過https://wwww.example.comhttps://example.com訪問,我們的 SEO 要求我從沒有 www 的頁面到 www 的 301 重定向與 http 訪問 https 相同,今天的系統僅使用代碼 307 進行重定向,我相信這是通過設置app.UseHttpsRedirection(); Program.cs中,我沒有找到如何使用 ASP.NET Core 6 來執行此操作,在我的Program.cs中是這樣的:

//builder.Services.Configure<RouteOptions>(options =>
//{
//    options.LowercaseUrls = true;
//    options.LowercaseQueryStrings = true;
//});

builder.Services.AddRazorPages(options =>
{
    options.Conventions.AddPageRoute("/MyControll", "My-Page-Default");
});

builder.Services.AddReCaptcha(builder.Configuration.GetSection("ReCaptcha"));

var app = builder.Build();

if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    app.UseHsts();
}

app.UseStatusCodePagesWithReExecute("/Erro", "?statusCode={0}");
app.UseHttpsRedirection(); //redirect with code 307?
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();

我的問題是,如何使用 301 代碼(永久移動)在沒有 www 到 www 和 http 到 httpS 的情況下進行重定向,或者我應該對每個控件進行此 url 檢查並通過控件強制重定向?

謝謝!

看起來你不是第一個需要這個的人,asp net core 現在已經內置了這些方法。這里是如何實現這兩個請求的簡單介紹。

using Microsoft.AspNetCore.Rewrite;

var builder = WebApplication.CreateBuilder(args);


var app = builder.Build();

var options = new RewriteOptions();
options.AddRedirectToHttpsPermanent();  // THIS CHANGES IT 301
options.AddRedirectToWwwPermanent();    // THIS CHANGES TO WWW AND 301

app.UseRewriter(options);
app.MapGet("/", () => "Hello World!");

app.Run();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM