I’m looking for a way to redirect my website in the following order:
all http --> https all www --> non-www
i was using following code in .htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.(.)$ [NC] RewriteRule ^(.)$ https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
but after using this code my other websites which was not using ssl started redirecting to https: as i am on shared server.
can some one provide me code for .htaccess which can redirect only 1 website and not interfere with other non ssl websites ?
thanks in advance.
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
This should do the trick:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
This will redirect any URL not using the www subdomain and any URL that is not https:// to the https://www version of your site.
Apache does not have mod_rewrite enabled by default so for this to work you’ll need to do two things.
sudo a2enmod rewrite;
sudo service apache2 restart;
AllowOverride All
set. This tells Apache it can use directives in an .htaccess file to override the default settings.After changing the file, restart Apache:
sudo service apache2 restart;
This comment has been deleted