I have this old cakephp2 application that I'm deploying it to AWS ECS.
However, it needs to redirect all the requests to https.
I have updated the .htaccess as follows:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/server-status
RewriteBase /
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule !/status https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
RewriteRule ^$ https://%{SERVER_NAME}/users/login [R,L]
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
I would expect that all requests were being redirect to https but there is one that is still not being correctly redirected. From the login page, when clicking login, it should redirect the user to https://%{SERVER_NAME}/tests/users however when making requests to that url https://%{SERVER_NAME}/tests/users it keeps redirecting the request to (http) http://%{SERVER_NAME}/users/login. Any suggestions? Thanks.
The fact that you have:
in one of your rewrite conditions suggests you might be using an ELB (or similar) to terminate SSL and forward requests to your web servers unencrypted.
CakePHP 2 relies on the
HTTPSvariable being set by the web server to indicate that the request was encrypted (checkenvfunction in lib/Cake/basics.php or search'HTTPS'in lib/Cake/bootstrap.php). You can useSetEnvIfto add the variable based on theX-Forwarded-Protoheader: