The below forces all request to your domain to go to the main non-www root domain.
Updated code:
RewriteCond %{HTTP_HOST} !=domain.com
RewriteRule ^(.*)$ https://newurl.com/subdir/$1 [R=301,L]
If you don't want it to go to a subdirectory:
RewriteCond %{HTTP_HOST} !=domain.com
RewriteRule ^(.*)$ https://newurl.com/$1 [R=301,L]
Bad code:
This code is bad beca........
The best way is as below in .htaccess using modrewrite, any request that is not SSL will be redirected to https://domain.com and the exact same URL
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]........
This example is based on Wordpress but applies to any other query string eg.
http://wordpress.com/?p=55
If you want to manually redirect that p=55 to /some/other/url how do you do it?
RewriteCond %{QUERY_STRING} p=55 [NC]
RewriteRule .* /new-url/? [R=301,L]
You can change the p=55 to whatever your query string looks like.
Remember to keep the "?" at the end of the new URLunless you really want the query s........
Istruggled with this for awhile because the normal setup won't work if modrewrite is being used:
ORDER ALLOW, DENY
So the solution is something like this:
order allow,deny
deny from 12.43.12.0/24
allow from all
........
I was getting frustrated with trying to write a simple URL like this:
/example-withdash
I used the htaccess code like this:
Rewriterule ^example-withdash$ / [R=301]
I also tried escaping the dash which I thought should have treated it as a literal but that didn't work either:
Rewriterule ^example-withdash$ / [R=301]
But it wouldn't work, apparently the "-" dash means don't substitute,........