Below are common htaccess redirects for wordpress.
#Block a certain domain from being accessed
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.somedomainexample.com$
RewriteRule .* - [F]
PHP Alternative for same:
if($_SERVER['HTTP_HOST'] == 'www.gooddomain1.com' || $_SERVER['HTTP_HOST'] == 'gooddomain1.com'){
//run some codes
1;
}else{
exit;
}
Redirection www and non www:
By default, wordpress + plugins handle these automatically. But relying on wordpress is slow. Htaccess will save you a lot of load time (and cpu processing power), so you can handle many visitors at once. From experience, each redirect may take up to 1.25 seconds even on a fast server with minimal load. So this really does make a difference.
# http://domain.com -> https://www.domain.com/
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# http://domain.com -> https://domain.com/
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
#http://domain.com -> https://domain.com/en/
#https://domain.com -> https://domain.com/en/
#this is great for WPML where default language is set as directory. You can skip 2 wordpress redirects with this rule
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/en/ [R=301,L]
</IfModule>
Helpful Link:
rewrite rule tester: https://htaccess.madewithlove.be/