3

我想将所有请求从 .com 重定向到 .net,并在 dot net core 中使用相同的路径和路由。

与以下从起始 URL 中删除 www 的代码相同:

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;
    }
}));
4

1 回答 1

1

您可以更改现有代码以将 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
    :
    :
}

我没有测试过它,但它应该可以工作。

于 2018-03-19T08:23:34.153 回答