htaccess help, need to force www, https, and remove index.php
Asked Answered
S

1

9

I have a rewrite in my htaccess file that removes index.php from the url

RewriteEngine on
RewriteCond $1 !^(images|media|system|themes|_css|_js|favicon\.ico|robots\.txt|cert\.html|index\.php) [NC]
RewriteRule ^(.*)$ /index.php/$1 [L]

In addition to this, I want to force the www and https for any request that does not have either.

So ultimately all urls should look like this: https://www.example.com/whatever/something/; and for SEO purposes, if a url misses the mark, it should 301 redirect to it's correct version, for example:

http://example.com/about/
301 redirect to
https://www.example.com/about/

Would love some help accomplishing that, thanks!

Steelwork answered 27/7, 2011 at 16:8 Comment(0)
B
23

Force WWW:

RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] # include 's' here to force ssl in addition to www

Force SSL:

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

Remove "index.php":

RewriteCond %{THE_REQUEST} /index.php HTTP
RewriteRule (.*)index.php$ /$1 [R=301,L]
Baronetage answered 27/7, 2011 at 16:20 Comment(4)
Thanks, this seems to work pretty well so far. If I hit domain.com in the browser I get the certificate untrusted error, because the the cert is only for www. Is there any way around that?Steelwork
@mjr Get certificate that covers both domain.com and www.domain.com .. or the more expensive wildcard certificate (will cover ALL subdomains). Unfortunately secure channel (SSL) has to be established first before HTTP part of HTTPS can kick in. In other words, rewrite rule will not get executed until connection is fully established.Cookgeneral
@mjr I submitted an edit to the accepted answer that should solve your problem.Snowfall
The first code snippet does not force the SSL when one types in something like www.example.com/example. The second code snippet under "Force SSL:" seems to work perfectly for me.Edgaredgard

© 2022 - 2025 — McMap. All rights reserved.