在www.example.com而不是example.com上提供页面

时间:2019-03-26 14:52:09

标签: c# .net-core cloudflare

现在,同时使用www而不是www来运行我的页面。

我在Cloudflare中终止了,它应该使页面上的301从非www到www。我已经尝试过将Cloudflare和.net core 2.0设置为始终只设置为亲爱的www。

我试图将Cloudflare设置为运行301,并将其扔到www.xxxx.dk

Setting to Cloudflare

因此,我遵循此设置进行操作,以使页面无论何时都始终运行www。

https://stackoverflow.com/a/48784263/11141703

此处的Startup.cs文件:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
     var rewrite = new RewriteOptions()
         .AddRedirectToWww()
         .AddRedirectToHttpsPermanent();

     app.UseRewriter(rewrite);
     .... and more here after....
}

此处的RedirectToWwwRule.cs文件:

public class RedirectToWwwRule : IRule
{
    public virtual void ApplyRule(RewriteContext context)
    {
        var req = context.HttpContext.Request;
        if (req.Host.Host.Equals("localhost", StringComparison.OrdinalIgnoreCase))
        {
            context.Result = RuleResult.ContinueRules;
            return;
        }

        if (req.Host.Value.StartsWith("www.", StringComparison.OrdinalIgnoreCase))
        {
            context.Result = RuleResult.ContinueRules;
            return;
        }

        var wwwHost = new HostString($"www.{req.Host.Value}");
        var newUrl = UriHelper.BuildAbsolute(req.Scheme, wwwHost, req.PathBase, req.Path, req.QueryString);
        var response = context.HttpContext.Response;
        response.StatusCode = 301;
        response.Headers[HeaderNames.Location] = newUrl;
        context.Result = RuleResult.EndResponse;
    }
}

此处为RewriteOptionsExtensions文件:

public static class RewriteOptionsExtensions
{
    public static RewriteOptions AddRedirectToWww(this RewriteOptions options)
    {
        options.Rules.Add(new RedirectToWwwRule());
        return options;
    }
}

问题:

目前存在的问题是无论使用www还是不使用www都可以运行我的页面。基本上,我只想运行WWW,什么也没有。

关于SEO,我没有两个相同的页面。

正如我所说,什么都没有发生,因为我已经在代码和Cloudflare中添加了这两个解决方案。

0 个答案:

没有答案