无法获得正确的URL重定向到我的网站

时间:2018-12-14 19:17:37

标签: amazon-web-services amazon-s3 https dns amazon-cloudfront

我在NameCheap上拥有自己的域,可以将其命名为example.com。 我还拥有一个指向s3存储桶的cloudfront发行版,该存储桶仅提供https流量,我们称之为myCloudfront.cloudfront.net

如果我转到myCloudfront.cloudfront.net,我将被重定向到https://myCloudfront.cloudfront.net,一切都很好。

在NameCheap上,我有一个具有以下值的CNAME记录:

Type         Host           Value                TTL
CNAME        www  myCloudfront.cloudfront.net    Automatic

问题在于,重定向到我的Cloudfront发行版的唯一方法是,当我不输入www时,直接输入https://www.example.com。或尝试使用http,它要么找不到网站,要么因为不是https而被拒绝。

如何设置NameCheap网站,以便如果用户键入以下任何内容,他们将被重定向到https://example.com

example.com
www.example.com
http://example.com
http://www.example.com
https://www.example.com

谢谢!

1 个答案:

答案 0 :(得分:1)

嗯...在我看来,在NameCheap中,您可以这样做:

Host   Value               TTL
 @     your_server's_ip Automatic
www       @             Automatic

因此,example.com和www.example.com都将指向example.com服务器。

在example.com上,安装Apache(我假设example.com是Linux服务器?),然后在/etc/httpd/conf/httpd.conf中设置一堆VirtualHost,以处理之间的转发和重定向。 http-> https和https-> cdn等 这样的事情可能会起作用:

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName example.com
    Redirect https://myCloudfront.cloudfront.net/
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName www.example.com
    Redirect https://myCloudfront.cloudfront.net
</VirtualHost>
<VirtualHost *:443>
    ServerAdmin webmaster@example.com
    ServerName example.com
    Redirect https://myCloudfront.cloudfront.net/
</VirtualHost>
<VirtualHost *:443>
    ServerAdmin webmaster@example.com
    ServerName www.example.com
    Redirect https://myCloudfront.cloudfront.net
</VirtualHost>

如果需要,您可以通过转发和重定向获得更多创意。

以上四个规则应涵盖:

http://example.com
http://www.example.com
https://example.com
https://www.example.com

希望有帮助!