** from http to https**

To set up redirection (redirect), in the directory of your site, add to the beginning of the file .htaccess (if this file does not exist, then create it, note the file starts with a dot), the following lines:

RewriteEngine On  
RewriteCond %{HTTPS} off  
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]  

or as another alternative

RewriteEngine On  
RewriteCond %{HTTP:X-HTTPS} !1  
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]  

** from https to http**

To create a redirect from HTTPS to HTTP with .htaccess, you need to open an .htaccess file, in the directory of the site, if you do not have it, you need to create the file (.htaccess), and write the following code:

RewriteEngine on  
RewriteCond %{HTTPS} on  
RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI}  

Rewrite from one page to another*

Redirect 301 /test-1/ http://site.ru/test-2/  
RewriteCond %{REQUEST_URI} ^/test/$  
RewriteRule ^.*$ http://site.ru/new-test/? [R=301,L]  

Rewrite from www to no www (the main mirror is a domain without a www)*

RewriteCond %{HTTP_HOST} ^www\.(.*)$  
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]  

redirect from no www to www (the main mirror is a domain with a www)

RewriteCond %{HTTP_HOST} ^([^www].*)$  
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]  

Rewrite from pages with a slash to pages without a slash (the whole site)*

RewriteCond %{REQUEST_URI} !\?  
RewriteCond %{REQUEST_URI} !\&amp  
RewriteCond %{REQUEST_URI} !\=  
RewriteCond %{REQUEST_URI} !\.  
RewriteCond %{REQUEST_URI} ![^\/]$  
RewriteRule ^(.*)\/$ /$1 [R=301,L]  

Rewrite from non-slash pages to slash (often set automatically in CMS systems)*

RewriteCond %{REQUEST_URI} !\?  
RewriteCond %{REQUEST_URI} !\&amp  
RewriteCond %{REQUEST_URI} !\=  
RewriteCond %{REQUEST_URI} !\.  
RewriteCond %{REQUEST_URI} !\/$  
RewriteRule ^(.*[^\/])$ /$1/ [R=301,L]  

one (not two consecutive!) redirect to no www and with a slash at the end of the page address

RewriteCond %{REQUEST_URI} !\?  
RewriteCond %{REQUEST_URI} !\&amp  
RewriteCond %{REQUEST_URI} !\=  
RewriteCond %{REQUEST_URI} !\.  
RewriteCond %{REQUEST_URI} !\/$  
RewriteCond %{HTTP_HOST} ^www\.(.*)$  
RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]  

RewriteCond %{REQUEST_URI} !\?  
RewriteCond %{REQUEST_URI} !\&amp  
RewriteCond %{REQUEST_URI} !\=  
RewriteCond %{REQUEST_URI} !\.  
RewriteCond %{REQUEST_URI} !^\/]$  
RewriteCond %{HTTP_HOST} ^www\.(.*)$  
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]  

RewriteCond %{REQUEST_URI} !\?  
RewriteCond %{REQUEST_URI} !\&amp  
RewriteCond %{REQUEST_URI} !\=  
RewriteCond %{REQUEST_URI} !\.  
RewriteCond %{REQUEST_URI} !\/$  
RewriteCond %{HTTP_HOST} ^([^www].*)$  
RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]  

one (not two consecutive!) redirect to c www and with a slash at the end of the page address

RewriteCond %{REQUEST_URI} !\?  
RewriteCond %{REQUEST_URI} !\&amp  
RewriteCond %{REQUEST_URI} !\=  
RewriteCond %{REQUEST_URI} !\.  
RewriteCond %{REQUEST_URI} !\/$  
RewriteCond %{HTTP_HOST} ^www\.(.*)$  
RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]  

RewriteCond %{REQUEST_URI} !\?  
RewriteCond %{REQUEST_URI} !\&amp  
RewriteCond %{REQUEST_URI} !\=  
RewriteCond %{REQUEST_URI} !\.  
RewriteCond %{REQUEST_URI} !\/$  
RewriteCond %{HTTP_HOST} ^([^www].*)$  
RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]  

RewriteCond %{REQUEST_URI} !\?  
RewriteCond %{REQUEST_URI} !\&amp  
RewriteCond %{REQUEST_URI} !\=  
RewriteCond %{REQUEST_URI} !\.  
RewriteCond %{REQUEST_URI} !^\/]$  
RewriteCond %{HTTP_HOST} ^([^www].*)$  
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]  

one (not two consecutive!) redirect to c www and no slash at the end of the page address

RewriteCond %{REQUEST_URI} ^\/$  
RewriteCond %{HTTP_HOST} ^([^www].*)$  
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]  

RewriteCond %{REQUEST_URI} !\?  
RewriteCond %{REQUEST_URI} !\&amp  
RewriteCond %{REQUEST_URI} !\=  
RewriteCond %{REQUEST_URI} !\.  
RewriteCond %{REQUEST_URI} \/$  
RewriteCond %{HTTP_HOST} ^www\.(.*)$  
RewriteRule ^(.*)\/$ http://www.%1/$1 [L,R=301]  

RewriteCond %{REQUEST_URI} !\?  
RewriteCond %{REQUEST_URI} !\&amp  
RewriteCond %{REQUEST_URI} !\=  
RewriteCond %{REQUEST_URI} !\.  
RewriteCond %{REQUEST_URI} !\/$  
RewriteCond %{HTTP_HOST} ^([^www].*)$  
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]  

RewriteCond %{REQUEST_URI} !\?  
RewriteCond %{REQUEST_URI} !\&amp  
RewriteCond %{REQUEST_URI} !\=  
RewriteCond %{REQUEST_URI} !\.  
RewriteCond %{REQUEST_URI} \/$  
RewriteCond %{HTTP_HOST} ^([^www].*)$  
RewriteRule ^(.*)\/$ http://www.%1/$1 [L,R=301]  

one (not two consecutive!) redirect to no www and no slash at the end of the page address

RewriteCond %{REQUEST_URI} ^\/$  
RewriteCond %{HTTP_HOST} ^www\.(.*)$  
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]  

RewriteCond %{REQUEST_URI} !\?  
RewriteCond %{REQUEST_URI} !\&amp  
RewriteCond %{REQUEST_URI} !\=  
RewriteCond %{REQUEST_URI} !\.  
RewriteCond %{REQUEST_URI} \/$  
RewriteCond %{HTTP_HOST} ^www\.(.*)$  
RewriteRule ^(.*)\/$ http://%1/$1 [L,R=301]  

RewriteCond %{REQUEST_URI} !\?  
RewriteCond %{REQUEST_URI} !\&amp  
RewriteCond %{REQUEST_URI} !\=  
RewriteCond %{REQUEST_URI} !\.  
RewriteCond %{REQUEST_URI} !\/$  
RewriteCond %{HTTP_HOST} ^www\.(.*)$  
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]  

RewriteCond %{REQUEST_URI} !\?  
RewriteCond %{REQUEST_URI} !\&amp  
RewriteCond %{REQUEST_URI} !\=  
RewriteCond %{REQUEST_URI} !\.  
RewriteCond %{REQUEST_URI} \/$  
RewriteCond %{HTTP_HOST} ^([^www].*)$  
RewriteRule ^(.*)\/$ http://%1/$1 [L,R=301]  

Rewrite only site.ru/index.php addresses (without GET parameters) to the main site.ru mirror*

RewriteCond %{REQUEST_URI} /index.php  
RewriteCond %{QUERY_STRING} ^\z  
RewriteRule ^(.*)$ http://site.ru/? [R=301,L]  

Rewrite all addresses with index.php and GET parameters to pages with GET parameters only (cut in url index.php)*

Example: like site.ru/index.php?n=1 to site.ru/?n=1

RewriteCond %{REQUEST_URI} /index.php  
RewriteRule ^(.*)$ http://site.ru/ [R=301,L]  

Rewrite for index.php, index.html or index.htm (e.g. in Joomla), mass gluing*

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/  
RewriteRule ^(.*)index\.(php|html|htm)$ http://site.ru/$1 [R=301,L]  

** redirect url with GET parameters (dynamic URL) to static**

1 variant (simple url with GET parameter)

RewriteCond %{QUERY_STRING} ^id=229  
RewriteRule ^.*$ /supermodel/? [R=301,L]  

Variant 2 (with page and GET parameter)

RewriteCond %{REQUEST_URI} /test/  
RewriteCond %{QUERY_STRING} ^id=229  
RewriteRule ^.*$ /supermodel/? [R=301,L]  

all pages from one domain to the main page of another domain

RewriteCond %{REQUEST_URI} (.*)  
RewriteRule ^(.*)$ http://site.ru/ [L,R=301]  

each page of one domain to the same address of the other url

RewriteCond %{REQUEST_URI} (.*)  
RewriteRule ^(.*)$ http://site.ru/$1 [L,R=301]  
Updated Aug. 1, 2018