Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将www.example.com重定向到example.com?_C#_Azure_Asp.net Mvc 4_Url Routing - Fatal编程技术网

C# 如何将www.example.com重定向到example.com?

C# 如何将www.example.com重定向到example.com?,c#,azure,asp.net-mvc-4,url-routing,C#,Azure,Asp.net Mvc 4,Url Routing,我的MVC4应用程序托管在Azure(共享网站)上,在example.com上运行良好。 我想将www.example.com重定向到example.com,但如果在www.example.com访问,它会报告404错误 我应该添加什么?这是解决此问题的正确方法吗? 我不认为这是DNS的问题,因为我已经问过了 我已尝试通过Web.config重定向: <system.webServer> <rewrite> <rules> <clear /&

我的MVC4应用程序托管在Azure(共享网站)上,在example.com上运行良好。
我想将www.example.com重定向到example.com,但如果在www.example.com访问,它会报告404错误

我应该添加什么?这是解决此问题的正确方法吗?
我不认为这是DNS的问题,因为我已经问过了

我已尝试通过Web.config重定向:

<system.webServer>
<rewrite>
  <rules>
    <clear />
    <rule name="WWW Rewrite" stopProcessing="true" enabled="true">
      <match url=".*" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^www[.](.+)" />
      </conditions>
      <action type="Redirect" url="http://{C:1}/{R:0}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>
</system.webServer>


但它不起作用

您必须同时拥有www.mysite.com和mysite.com的DNS记录,无论是a还是CNAME。然后,您应该在web服务器上设置一个“301”重定向,将所有请求从www.mysite.com重定向到mysite.com

如果您不介意人们同时使用这两种方法,那么您的DNS区域中的CNAME记录就可以做到:

www IN CNAME mysite.com

我认为有一种方法可以向谷歌注册,并告诉它总是使用其中一个来为你的网站编制索引。

你必须拥有这两个网站的DNS记录:www.mysite.com和mysite.com,或者是a或CNAME。然后,您应该在web服务器上设置一个“301”重定向,将所有请求从www.mysite.com重定向到mysite.com

如果您不介意人们同时使用这两种方法,那么您的DNS区域中的CNAME记录就可以做到:

www IN CNAME mysite.com

我认为有一种方法可以向谷歌注册,并告诉它总是使用其中一个来索引你的网站。

除了Web.config中的重写部分,两个域名(example.com和www.example.com)都必须在Azure中配置为自定义域。

然后一切都可以按需要运行。

除了Web.config中的重写部分,两个域名(example.com和www.example.com)都必须在Azure中配置为自定义域。

然后一切都按预期进行。

Azure不允许您指定多个域和一个规范吗?@GrantThomas:可以,但在这种情况下,我将有两个URL指向同一个网站,这不利于谷歌排名和分析。Azure不允许您指定多个域和一个规范吗?@GrantThomas:可以,但在这种情况下,我将有两个URL指向同一个网站,这不利于谷歌排名和分析。在Azure网站上设置301重定向是我现在遇到的问题。我在我的IIS上使用上面的web.config尝试了你的示例(我没有Azure帐户),它可以按照你的意愿工作:基本上从URL中删除“www.”。你有什么样的错误/行为?你有DNS设置让www.mysite.com指向site.com吗?是的,我有指向@的www的CNAME(否则我会得到服务器未找到错误)。在我的情况下,我收到服务器错误404-找不到文件或目录。在Azure网站上设置301重定向是我现在遇到的问题。我在我的IIS上使用上面的web.config尝试了你的示例(我没有Azure帐户),它按你的要求工作:基本上从URL中删除“www.”。你有什么样的错误/行为?你有DNS设置让www.mysite.com指向site.com吗?是的,我有指向@的www的CNAME(否则我会得到服务器未找到错误)。在我的例子中,我得到了服务器错误404-找不到文件或目录。