ASP.NET 核心 2 Url 重写中间件以从 .xxx 重定向到 .yyy 扩展名
ASP.NET Core 2 Url Rewriting middleware to redirect from .xxx to .yyy extension
我想在 dot net core 中使用相同的路径和路由将所有请求从 .com 重定向到 .net。
与从开头删除 www 的代码相同 URL:
app.UseRewriter(new RewriteOptions().Add(ctx =>
{
// checking if the hostName has www. at the beginning
var req = ctx.HttpContext.Request;
var hostName = req.Host;
if (hostName.ToString().StartsWith("www."))
{
// Strip off www.
var newHostName = hostName.ToString().Substring(4);
// Creating new url
var newUrl = new StringBuilder()
.Append(req.Scheme)
.Append(newHostName)
.Append(req.PathBase)
.Append(req.Path)
.Append(req.QueryString)
.ToString();
// Modify Http Response
var response = ctx.HttpContext.Response;
response.Headers[HeaderNames.Location] = newUrl;
response.StatusCode = 301;
ctx.Result = RuleResult.EndResponse;
}
}));
您可以更改现有代码以将 com 更改为 net。
if (hostName.ToString().EndsWith(".com"))
{
// change the com to net
var newHostName = hostName.ToString().Substring(0, hostName.ToString().Length - 4) + ".net";
// Creating new url
:
:
}
我还没有测试过,但应该可以。
我想在 dot net core 中使用相同的路径和路由将所有请求从 .com 重定向到 .net。
与从开头删除 www 的代码相同 URL:
app.UseRewriter(new RewriteOptions().Add(ctx =>
{
// checking if the hostName has www. at the beginning
var req = ctx.HttpContext.Request;
var hostName = req.Host;
if (hostName.ToString().StartsWith("www."))
{
// Strip off www.
var newHostName = hostName.ToString().Substring(4);
// Creating new url
var newUrl = new StringBuilder()
.Append(req.Scheme)
.Append(newHostName)
.Append(req.PathBase)
.Append(req.Path)
.Append(req.QueryString)
.ToString();
// Modify Http Response
var response = ctx.HttpContext.Response;
response.Headers[HeaderNames.Location] = newUrl;
response.StatusCode = 301;
ctx.Result = RuleResult.EndResponse;
}
}));
您可以更改现有代码以将 com 更改为 net。
if (hostName.ToString().EndsWith(".com"))
{
// change the com to net
var newHostName = hostName.ToString().Substring(0, hostName.ToString().Length - 4) + ".net";
// Creating new url
:
:
}
我还没有测试过,但应该可以。