我使用Nginx 1.6.3和django 1.7.6在AWS上托pipeWeb应用程序
我想通过Route 53将www.mydomain.comredirect到mydomain.com
换句话说,当用户键入www.mydomain.com/foo时,在地址栏上显示mydomain.com/foo
路由53configuration
mydomain.com
www.mydomain.com
通过以上configuration, mydomain.com工作良好,但www.mydomain.com返回400错误的请求错误。 当然,我已经在足够的时间间隔(超过24小时)的秘密模式(无caching)尝试它。 在前面添加http://返回相同的错误。
server { listen 80; server_name www.mydomain.com; return 301 $scheme://mydomain.com$request_uri; }
如果我在nginx.conf添加上面的代码, www.mydomain.com会按照我的www.mydomain.comredirect到mydomain.com 。 但是,我不确定编辑Web服务器configuration是否需要使用CNAME服务。 如何在不编辑Web服务器的情况下使用CNAME服务?
这听起来像预期的行为。 当HTTP服务器收到一个不知道如何处理的请求时,会发生什么情况,但是不会发生redirect,除非发生在HTTP级别。
CNAMElogging只是说明DNS中的给定名称是DNS中不同名称的别名。
当你有一个CNAMElogging的时候,会发生什么呢?当你的HTTP客户端对别名进行A或AAAA查询时,会得到与返回的实际名称相关联的IP地址。
然后,他们将连接到该地址,知道这是与他们查找的名称(别名)相关联的地址,并提出一个完全正常的请求。
当你有基于名字的虚拟主机的时候,HTTP服务器关心的是什么,这个Host头部说了什么,客户端会把它导航到的URL中的任何主机名作为头部的值(在这个例子中是别名) 。
如果你想redirect一个HTTP客户端,你需要一个HTTPredirect,就像你自己的例子。