我一直在阅读其他帖子,试图弄清楚这个问题的根源... 但我需要一些澄清。
当输入 www.example.com/MyDirectory
时,我能够使所有域请求完美地落到我的 Amazon S3 存储桶上。
如果我输入没有 www 的 example.com/MyDirectory
,它将失败。
如何正确地使不带 www 的 URL 请求路由到同一个 Amazon S3 存储桶?
我一直在阅读其他帖子,试图弄清楚这个问题的根源... 但我需要一些澄清。
当输入 www.example.com/MyDirectory
时,我能够使所有域请求完美地落到我的 Amazon S3 存储桶上。
如果我输入没有 www 的 example.com/MyDirectory
,它将失败。
如何正确地使不带 www 的 URL 请求路由到同一个 Amazon S3 存储桶?
我使用了jremi的答案,但是像下面提到的那样,邮件传递存在问题。经过一些时间与NameCheap支持团队的沟通,我找到了一个可行的解决方案。
NameCheap设置
CNAME Record www example.com.s3-website-us-west-1.amazonaws.com.
URL Redirect Record @ www.example.com (unmasked)
S3设置(仅需要1个存储桶)
[S3 Bucket]
Bucket name: www.example.com <---- This must match your domain exactly
Static website hosting set to:
"Enable website hosting"
S3存储桶策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::www.example.com/*"
}
]
}
这使得example.com
和www.example.com
都能够正常工作,而且我的NameCheap电子邮件也能使用。
http://www.example.com
。当我省略了http://
时,在Namecheap控制台中出现错误,提示URL格式不正确。 - Adam Parkin我最终采用了以下解决方案:
我正在使用Namecheap作为DNS,Amazon S3桶启用了静态托管...
该解决方案使得能够访问根域和www域。在namecheap高级DNS配置中,我有以下设置:
CNAME Record @ domain.com.s3-website-us-west-1.amazonaws.com.
CNAME Record www www.domain.com.s3-website-us-west-1.amazonaws.com.
在Amazon S3配置中,我创建了两个单独的存储桶。[S3 Bucket #1]
Bucket name: www.example.com
Static website hosting set to:
"Enable website hosting"
[S3 Bucket #2]
Bucket name: example.com
Static website hosting set to:
"Redirect all requests to another host name" pointing to www.example.com (Bucket #1)
通过这种配置,任何以根域名访问的网站流量都可以访问 Amazon S3 存储桶容器 example.com
并通过 Amazon 自动重定向到服务所有静态内容的主 S3 存储桶 www.example.com
。
如果有人尝试直接连接到 www 域名,则会直接访问 Amazon S3 容器 www.example.com
,而不需要通过 example.com
存储桶进行重定向。
如果您在使您的根域名流量正确路由方面遇到问题,请参考此配置。