我正在使用带有HTTPS的Amazon ELB(ELB将所有流量从443重定向到80)并且一切运行良好。
现在我使用下一个htaccess代码将所有请求从http重定向到https:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
RewriteCond $1 !^(index\.php|assets)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
它工作得很好,问题是亚马逊ELB运行状况检查失败,因为http到https重定向,有没有办法将所有流量重定向到https除了一个网址?
(所以我可以使用URL进行http健康检查,其余部分使用https)
答案 0 :(得分:1)
试试这个:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
RewriteCond %{HTTPS} on
RewriteCond %{SCRIPT_FILENAME} /specific_controller/specific_method [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond $1 !^(index\.php|assets)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]