Apache www 到 Amazon Elastic Beanstalk 上的非 www 重定向

Apache www 到 Amazon Elastic Beanstalk 上的非 www 重定向

我最近将一个简单的 PHP 网站移到了 Elastic Beanstalk,但发现很难将 重定向www.example.comexample.com。它不是 https,我发现的大多数建议都与

这就是我所拥有的:

路线53:

A      example.com      example.eu-west-1.elasticbeanstalk.com (Alias)
CNAME  www.example.com  example.eu-west-1.elasticbeanstalk.com

在我的.htaccess文件中,有以下内容:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ %{ENV:PROTO}://%1%{REQUEST_URI} [R=301,L]
</IfModule>

访问时example.com一切正常,但访问时www.example.com出现重定向循环:

http://www.example.com/var/www/html/://example.com/var/www/html/://example.com

这是在 AWS 上重定向的最佳方式吗?

编辑

我现在也尝试过

RewriteCond %{HTTP:X-Forwarded-Proto} !=https [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{SERVER_NAME} ^(www\.)?(.*)$ [NC]
RewriteRule ^/?(.*)$ http://%2/$1 [L,R=301]

并且虽然www.example.com确实重定向到example.com,但它现在具有重定向循环(尽管地址栏中没有服务器路径)。

答案1

这不是解决您的.htaccess问题的方法,但一个简单的重定向解决方案是使用 S3 存储桶进行重定向。

  1. 设置 S3 存储桶www.example.com并将其设置为网站重定向到example.com
  2. 将 Route 53 中的记录集设置www.example.com为此存储桶的别名。

这样,当您的用户访问 时www.example,com,他们将会访问存储桶,然后将他们重定向到example.com,然后转到您的服务器。

相关内容