2015-04-20 29 views
2

我已经看过:ZF2阿帕奇AWS ELB HTTP到HTTPS

Rerouting all http traffic to https with AWS ELB

http://www.emind.co/how-to/how-to-force-https-behind-aws-elb

Redirecting EC2 elb from http to https

我的负载均衡器监听端口是这样的:

HTTP (incoming) -> HTTP (instance) 
HTTPS (incoming) -> HTTP (instance) 

这是我到目前为止:

RewriteEngine On 

# The following rule tells Apache that if the requested filename 
# exists, simply serve it. 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 

RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteRule !/elbcheck.html https://%{SERVER_NAME}%{REQUEST_URI} 

RewriteRule ^.*$ - [NC,L] 
# The following rewrites all other queries to index.php. The 
# condition ensures that if you are using Apache aliases to do 
# mass virtual hosting, the base path will be prepended to 
# allow proper resolution of the index.php file; it will work 
# in non-aliased environments as well, providing a safe, one-size 
# fits all solution. 
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$ 
RewriteRule ^(.*) - [E=BASE:%1] 
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L] 

此工作将http重定向到https,但它只会转到索引页。它并没有启动应用程序,所有其他页面都以404s的形式返回。

任何意见将不胜感激,我一直在这个方面我的头撞了太久。

*************** UPDATE ***************

这里是我的.htaccess结束什么看起来像:

RewriteEngine On 

RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker 
RewriteRule (.*) https://gladitood.com%{REQUEST_URI} [R=301,L] 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ https://%1/$1 [R=301,L] 

# The following rule tells Apache that if the requested filename 
# exists, simply serve it. 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 

RewriteRule ^.*$ - [NC,L] 
# The following rewrites all other queries to index.php. The 
# condition ensures that if you are using Apache aliases to do 
# mass virtual hosting, the base path will be prepended to 
# allow proper resolution of the index.php file; it will work 
# in non-aliased environments as well, providing a safe, one-size 
# fits all solution. 
RewriteRule ^.*$ index.php [NC,L] 

希望这有助于!

回答

0

还要确保监听通过AWS控制台添加到ELB。端口80和端口443的监听器。