[英]ASP.NET Core 6 Razor Pages redirect no www to www with code 301
今天我的網站可以通過https://wwww.example.com
或https://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.