2.7.1.1.3. Redirects

Important points:

Redirect directives should be placed in the .htaccess file located in the site root directory, from which the redirect should be performed.

Alternatively, you can use web redirect.
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www.)?example1.com [NC]
RewriteRule ^(.*) http://www.example2.com/$1 [L,R=301]

Instead of example1.com, substitute the address of the site from which the redirect should be performed, and instead of http://www.example2.com, substitute the address to which.

RewriteEngine On 
RewriteBase / 
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

Instead of https://example.com/, substitute the name of other domain to which the redirect should be performed. The result is similar to the previous one, except that the domain name of the site from which the redirection occurs is not checked.

RewriteEngine On 
RewriteBase / 
RewriteRule ^(.*)$ http://example.com/desired_page/ [L,R=permanent]

Instead of http://example.com/desired_page/, substitute the address of the page on other site to which the redirect should be performed.

RewriteCond %{REQUEST_URI} ^/old/address/$
RewriteRule ^.*$ http://example.com/new/address/? [R=301,L]

Instead of example.com, substitute the address of the new site to which the redirect should be performed. Instead of /old/address/, specify the page from which the redirect should be performed, and instead of /new/address/, specify to which.

If the goal is to restrict access to the site, you can use settings in the control panel or directives in .htaccess as an alternative.
RewriteEngine On
RewriteCond %{REMOTE_ADDR} X.X.X.X
RewriteRule .* https://example.com/new/address/? [R=301,L]

Instead of example.com, substitute the address of the new site to which the redirect should be performed, and instead of /new/address/, substitute the address of the target file or page. Instead of X.X.X.X, specify the IP address to which the redirect should be performed. The IP address can be specified using regular expressions.

Be sure to enable processing requests to non-existent subdomains beforehand.

RewriteEngine On 
RewriteBase / 
RewriteCond %{HTTP_HOST} ^(.*).example.com [NC] 
RewriteRule ^(.*)$ http://example.com/$1 [L,R=permanent]

Instead of example.com, substitute the address of your site for which the redirect is being configured.

RewriteRule ^path/to/file.php$ /new/address/ [L,R=301]

Instead of path/to/file.php, substitute the address of the file from which the redirect should be performed, and instead of /new/address/, substitute the address of the target file or page.

RewriteCond %{REQUEST_URI} ^/old/address/$
RewriteRule ^.*$ http://%{HTTP_HOST}/new/address/ [R=301,L]

Instead of /old/address/, substitute the address of the page from which the redirect should be performed, and instead of /new/address/, substitute the address to which.

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

Instead of example.com, substitute the address of your site for which the redirect is being configured.

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

Instead of example.com, substitute the address of your site for which the redirect is being configured.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:SSL} !=1 [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteEngine On 
RewriteBase / 
RewriteCond %{HTTP:SSL} =1 [NC] 
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:SSL} !=1 [NC]
RewriteRule ^admin(.*)$ https://%{SERVER_NAME}/admin$1 [L,R]

Instead of admin, substitute the name of the directory for which the redirect is being configured.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:SSL} !=1 [NC]
RewriteCond %{THE_REQUEST} !/path/to/file.php [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Instead of /path/to/file.php, substitute the path to the file for which the redirect to HTTPS should not be triggered.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:SSL} !=1 [NC]
RewriteCond %{REQUEST_URI} !^/path/to/dir [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Instead of /path/to/dir, substitute the path to the directory for which the redirect to HTTPS should not be triggered.

Instead of php, you can specify any other file type that needs to be removed from the address, for example, html.
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.php($|\ |\?)
RewriteRule ^ /%1 [R=301,L]

Attention!

Removing the extension from the URL may negatively affect the operation of certain systems that use POST methods to send data to the script. It is important to note that such a rule may cause problems with the site's operation.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^.*$ $0.php [L,QSA]
RewriteCond %{THE_REQUEST} ([^\s]*)\.php(\?[^\s]*)?
RewriteRule (.*) %1 [R=301,L]

Instead of php, specify the desired extension.

For example, for example.com/file.html, a redirect will be performed to example.com/file, but in fact, file.html will be opened.

RewriteEngine on
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
RewriteRule ^([^.]+)\.html$ /$1 [R=301,L]
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*) /$1.html
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
RewriteCond %{THE_REQUEST} //
RewriteCond %{QUERY_STRING} !http(s|)://
RewriteRule .* /$0 [R=301,L]

Don't use redirect with .htaccess

Redirecting URLs to lowercase using .htaccess can lead to overload and, as a result, disruption of sites and the hosting account as a whole. To avoid this problem, use redirection with PHP code.
Content

    (1)