Typical redirects

You can set up redirects using the site's .htaccess file. This article lists commonly used redirects. For their work, you must have:

  • standard VPS + Apache with the mod_rewrite module enabled,
  • standard VPS with the VestaCP or ISPmanager panel installed in automatic mode.

ATTENTION! The redirects described in the article are not suitable for OS Bitrix7.

In ISPmanager, you can also use the built-in panel tools for redirections.

Redirects are set in the .htaccess file in the <IfModule mod_rewrite.c> block: 

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine on

#Правила

</IfModule>

The rules include:

RewriteCond - condition,

RewriteRule - the action to be performed when the condition is met.

Redirect to another domain

To redirect from www.domain-1.com to www.domain-2.com, enter:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)? domain-1\.com$

RewriteRule ^(.*)$ http://www.domain-2.com/$1 [R=301,L]

Redirect from a domain without www to a domain with www

To redirect from domain.test.com to www.domain.test.com, enter:

Option 1, for a specific domain

RewriteCond %{HTTP_HOST} ^domain\.test\.com$ [NC]

RewriteRule ^(.*)$ http://www.domain.test.com/$1 [R=301,L]

Option 2, without specifying any specific domain

RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]

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

Redirect from a domain with www to a domain without www

To redirect from www.domain.test.com to domain.test.com, enter:

Option 1

RewriteCond %{HTTP_HOST} ^www\.domain\.test\.com$ [NC]

RewriteRule ^(.*)$ http://domain.test.com/$1 [R=301,L]

Option 2

RewriteCond %{HTTP_HOST} !^domain\.test\.com$ [NC]

RewriteRule ^(.*)$ http://domain.test.com/$1 [R=301,L]

Redirect to subdirectory

To redirect from the www.test.domain.com subdomain to the test subdirectory, enter:

RewriteBase /

RewriteCond %{HTTP_HOST} ^test\.domain\.com$

RewriteCond %{REQUEST_URI} !/test/

RewriteRule ^(.*)$ /test/$1 [L]

Redirect from http to https

1. To redirect from http://domain-1.com to https://domain-1.com, enter:

RewriteBase /

RewriteCond %{HTTPS} !on

RewriteCond %{HTTP_HOST} ^domain-1.com$

RewriteRule ^(.*)$ https://domain-1.com/$1 [R=301,L]

2. For VPS with VestaCP panel enter:

RewriteCond %{SERVER_PORT} !^443$

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

3. For VPS with ISPmanager panel using Nginx enter:

RewriteBase /

RewriteCond %{HTTPS} off

RewriteCond %{HTTP:X-Forwarded-Proto} !https

RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Redirect from http to https://www

 To redirect from http://test.com to https://www.test.com, enter:

RewriteBase /

RewriteCond %{HTTPS} !on

RewriteCond %{HTTP_HOST} ^ test.com$

RewriteRule ^(.*)$ https://www.test.com /$1 [R=301,L]

To redirect from http://test.example.com to https://www.test.example.com, enter:

RewriteCond %{HTTP_HOST} ^test\.example\.com$ [NC]

RewriteRule ^(.*)$ https://www.test.example.com/$1 [R=301,L]

RewriteBase /

RewriteCond %{HTTPS} !on

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

Redirect from http://www to https

To redirect from http://www.test.example.com to https://test.example.com, enter:

RewriteCond %{HTTP_HOST} ^www\.test\.example\.com$ [NC]

RewriteRule ^(.*)$ https://test.example.com/$1 [R=301,L]

RewriteBase /

RewriteCond %{HTTPS} !on

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

Redirect from https to http:

RewriteBase /

RewriteCond %{HTTPS} on [NC]

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

Redirect to http for one page

Option 1:

RewriteBase /

RewriteCond %{HTTPS} on [NC]

RewriteCond %{REQUEST_URI} ^/Required.directory.page$

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

Option 2:

RewriteBase /

RewriteCond %{HTTPS} !on

RewriteCond %{REQUEST_URI} !^/Required.directory.page$

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

RewriteCond %{HTTPS} on [NC]

RewriteCond %{REQUEST_URI} ^/Required.directory.page$

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

For example, to disable the redirect to https for the bitrix/user/1c_exchange.php page for the correct operation of data exchange with 1C, enter:

RewriteBase /

RewriteCond %{HTTPS} !on

RewriteCond %{REQUEST_URI} !^/bitrix/user/1c_exchange\.php$

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

RewriteCond %{HTTPS} on [NC]

RewriteCond %{REQUEST_URI} ^/bitrix/user/1c_exchange\.php$

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

To disable redirect to https for the same page for the VestaCP panel, enter:

RewriteCond %{SERVER_PORT} !^443$

RewriteCond %{REQUEST_URI} !^/bitrix/user/1c_exchange\.php$

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

  

RewriteCond %{SERVER_PORT} ^443$

RewriteCond %{REQUEST_URI} ^/bitrix/user/1c_exchange\.php$

RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Redirect to https for one page

RewriteBase /

RewriteCond %{HTTPS} !on

RewriteCond %{REQUEST_URI} ^/Required.directory.page$

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

If you have any questions, please create a ticket to technical support.