Wel*_*ing 3 c# azure asp.net-core asp.net-core-2.1
当我将网站部署为Azure Web App时,我的AddRedirectToWwwPermanent()重写规则是添加“ www”。到默认天蓝色URL的前面,例如www.myproject.azurewebsites.net。在子域中使用“ www”会导致页面无法加载。
有没有一种方法可以跳过AddRedirectToWwwPermanent()专门针对*.azurewebsites.netURL 的重写规则?
我目前在使用Rewriter Startup.cs:
app.UseRewriter(new RewriteOptions()
.AddRedirectToWwwPermanent()
);
Run Code Online (Sandbox Code Playgroud)
或者,是否可以将*.azurewebsites.netURL 重定向到我自己的自定义域?我已经尝试了以下方法,但是不起作用:
app.UseRewriter(new RewriteOptions()
.AddRedirect(@"myproject.azurewebsites.net", @"www.example.com", StatusCodes.Status301MovedPermanently)
.AddRedirectToWwwPermanent()
);
Run Code Online (Sandbox Code Playgroud)
更新,也尝试过:
app.UseRewriter(new RewriteOptions()
.AddRedirect(@"https://myproject.azurewebsites.net", @"https://www.example.com", StatusCodes.Status301MovedPermanently)
.AddRedirectToWwwPermanent()
);
Run Code Online (Sandbox Code Playgroud)
这是我的解决方案,可在中使用ASP.NET Core 2.1。但是,我不知道这是否是进行重定向的最有效方法,因此我愿意接受更好的建议。
由于无法使内置AddRedirect()规则正常工作(我仍然认为我可能一直在使用错误的规则),因此我创建了一个自定义重写规则来进行重定向。
这是my RedirectAzureWebsitesRule,它重定向*.azurewebsites.net到自定义域:
public class RedirectAzureWebsitesRule : IRule
{
public int StatusCode { get; } = (int)HttpStatusCode.MovedPermanently;
public void ApplyRule(RewriteContext context)
{
HttpRequest request = context.HttpContext.Request;
HostString host = context.HttpContext.Request.Host;
if (host.HasValue && host.Value == "my-project.azurewebsites.net")
{
HttpResponse response = context.HttpContext.Response;
response.StatusCode = StatusCode;
response.Headers[HeaderNames.Location] = request.Scheme + "://" + "www.example.com" + request.PathBase + request.Path + request.QueryString;
context.Result = RuleResult.EndResponse;
}
else
{
context.Result = RuleResult.ContinueRules;
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后在中Startup.cs,我在以下之前调用了新规则AddRedirectToWwwPermanent():
app.UseRewriter(new RewriteOptions()
.Add(new RedirectAzureWebsitesRule())
.AddRedirectToWwwPermanent()
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
351 次 |
| 最近记录: |