Redirect 为什么我的URL重定向在没有www的情况下不起作用?

Redirect 为什么我的URL重定向在没有www的情况下不起作用?,redirect,https,cname,namecheap,Redirect,Https,Cname,Namecheap,我需要以下重定向: http://example.com -> http://www.example.com example.com -> http://www.example.com www.example.com -> http://www.example.com 在我的名字中,我设置了两个URL重定向记录: CNAME Record | www | appname.us-east-2.elasticbeanstalk.com. URL Redirect R

我需要以下重定向:

http://example.com -> http://www.example.com
example.com -> http://www.example.com
www.example.com -> http://www.example.com
在我的名字中,我设置了两个URL重定向记录:

CNAME Record        | www | appname.us-east-2.elasticbeanstalk.com.
URL Redirect Record |  @  | http://www.example.com                  | Unmasked 
但是,我仍然只能在实际键入完整URL时访问。当我删除www时,请求超时。所以URL重定向似乎没有任何作用。如何正确重定向到完整的http域

您可以将www.domain.com作为记录,并将www.domain.com的所有其他域名作为记录。但这只能“解决”如果www.domain.com的IP地址发生更改,则不必更改其他DNS实体,因为它们是别名

因此,在DNS级别上,没有办法强制执行重定向。这是一个很好的理由,因为DNS不仅仅用于HTTP。例如,如果对domain.com的所有请求都将重定向到www.domain.com,则您的电子邮件地址将更改为user@www.domain.com.


因此,对于HTTP重定向,您必须使用HTTP解决方案。这可以是在Web服务器级别(nginx、apache等)

我使用nginx,并实现了如下重定向:

vi/etc/nginx/sites enabled/example com

server {
        listen 80;
        server_name example.com;
        return 301 https://www.example.com$request_uri;
}

server {
        listen 80;
        server_name www.example.com;
        root /var/www/html;
        index index.html index.htm;
}
响应状态代码301表示“永久移动”,用于永久URL重定向

请不要忘记重新启动NGINX

sudo systemctl restart nginx

你能得到你的域名的完整dns记录吗?您的域名似乎没有设置
www
CNAME
。我刚刚添加了上面的www-CNAME记录。有什么办法解决这个问题吗?你有便宜的SSL吗?我没有SSL。我更新了我的问题,删除了SSL部分,因为它在没有https的情况下具有相同的行为。有什么办法解决这个问题吗?