I am using Zend framework where i have nice looking url controllers. Following .htaccess is working but its making SEO to see us as four links for one page.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]
I need to do following fix using htaccess:
www.stackoverflow.com/nice-looking-url = https://www.stackoverflow.com/nice-looking-url
stackoverflow.com/nice-looking-url = https://www.stackoverflow.com/nice-looking-url
http://www.stackoverflow.com/nice-looking-url = https://www.stackoverflow.com/nice-looking-url
http://stackoverflow.com/nice-looking-url = https://www.stackoverflow.com/nice-looking-url
How to do it correctly using htaccess? so that above input urls are safely landing with https://www. in front always?
Have your full .htaccess like this:
RewriteEngine On
## add www and turn on https in same rule - main domain
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(example\.com)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]
## turn on https in same rule - sub domain
RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
Make sure to use a new browser to test your changes to avoid old browser cache.