Reputation: 41
I am having trouble getting my htaccess to redirect the website to both www and https... I have tried adding snippets that I have found in previous posts but the best I can get it to do is only redirect correctly on the homepage, not the others...
Here is the full htaccess
order deny,allow
deny from all
allow from env=allowclient
SetEnvIf X-Cluster-Client-Ip 192.88.134.3 allowclient
SetEnvIf X-Cluster-Client-Ip 192.88.135.3 allowclient
SetEnvIf X-Cluster-Client-Ip 185.93.228.3 allowclient
SetEnvIf X-Cluster-Client-Ip 185.93.229.3 allowclient
SetEnvIf X-Cluster-Client-Ip 185.93.230.3 allowclient
SetEnvIf X-Cluster-Client-Ip 192.88.134.0/23 allowclient
SetEnvIf X-Cluster-Client-Ip 185.93.228.0/22 allowclient
SetEnvIf X-Cluster-Client-Ip 192.124.249.0/24 allowclient
SetEnvIf X-Cluster-Client-Ip 199.223.236.179 allowclient
SetEnvIf X-Cluster-Client-Ip 146.148.117.213 allowclient
SetEnvIf X-Cluster-Client-Ip 23.251.134.134 allowclient
SetEnvIf X-Cluster-Client-Ip 178.33.238.180 allowclient
SetEnvIf X-Cluster-Client-Ip 142.4.217.0/24 allowclient
SetEnvIf X-Cluster-Client-Ip 167.114.0.0/24 allowclient
SetEnvIf X-Cluster-Client-Ip 192.99.17.0/24 allowclient
SetEnvIf X-Cluster-Client-Ip 5.196.79.0/24 allowclient
SetEnvIf X-Cluster-Client-Ip 130.211.0.0/16 allowclient
SetEnvIf X-Cluster-Client-Ip 104.155.0.0/16 allowclient
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^static/lib/(.*) /wp-includes/$1?p_hide_my_wp=soloshotfirst [QSA,L]
RewriteRule ^file/(.*) /wp-content/uploads/$1?p_hide_my_wp=soloshotfirst [QSA,L]
RewriteRule ^static/ext/(.*) /wp-content/plugins/$1?p_hide_my_wp=soloshotfirst [QSA,L]
RewriteRule ^static/(.*) /wp-content/themes/tc/$1?p_hide_my_wp=soloshotfirst [QSA,L]
RewriteRule ^enfold/(.*) /wp-content/themes/enfold/$1?p_hide_my_wp=soloshotfirst [QSA,L]
RewriteRule ^static_main/(.*) /wp-content/themes/enfold/$1?p_hide_my_wp=soloshotfirst [QSA,L]
RewriteRule ^ajax /wp-admin/admin-ajax.php?p_hide_my_wp=soloshotfirst [QSA,L]
RewriteRule ^wp-content/themes/tc/screenshot\.png|readme\.html|license\.txt|wp-content/debug\.log|wp-includes/$ /nothing_404_404?p_hide_my_wp=soloshotfirst [QSA,L]
RewriteRule ^(((wp-content|wp-includes)/([A-Za-z0-9\-\_\/]*))|(wp-admin/(!network\/?)([A-Za-z0-9\-\_\/]+)))(\.txt|/)$ /nothing_404_404?p_hide_my_wp=soloshotfirst [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
<FilesMatch "\.(ttf|otf|woff)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
Upvotes: 1
Views: 269
Reputation: 471
Try this.
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Upvotes: 1
Reputation: 18671
Use (after RewriteBase /
):
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
Only one redirect with or without www
Upvotes: 1