Each SEO specialist faces necessity of using the 301 redirect which becomes important if you are going to change URLs of your pages, remove duplicate content, redirect users to another domain, and so on. You can find the most popular patterns of the 301 redirect in this article.

Since Apache is the most widespread web server, all templates listed in this article will concern it. To be more specific, templates should be prescribed in a root file .htaccess. Make sure that the module mod_rewrite (a file httpd.conf) is connected to Apache before using of the 301 redirects sample.

To use 301 redirect, first you need to specify directives necessary for operation of the module mod_rewrite in the first few lines of .htaccess file:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

Let`s consider rules of typical forwarding.

Redirect from an address with www-prefix to an address without www

To redirect all pages with www ( to pages without www (, use the following template:

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

Or a simplified version:

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

Redirect from an address without www to an address with www

You can 301 from pages without www ( to pages with www ( in almost the similar way as in the previous example. Just change the position of www:

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

Or an alternative simplified variant:

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

It is also worth mentioning that sometimes the rules work even if dots are not screened with a backslash, but don`t abuse it, because this can lead to errors at some servers.

Redirect from an index page to a site root

This type of redirect often causes problems if you use CMS, which redirects all site requests to an index page. Adding directives to .htaccess file will lead to a cycle of endless redirects. The easiest way is to insert a small snippet to the top of an index page (egindex.php):

if($_SERVER[‘REQUEST_URI’] ==  ‘/index.php’) {
header(“Location: /”,TRUE,301);

Thus, addresses are compared while requesting an index page, and if the requested address is, for example,, then the condition is triggered and redirection to a root of the site is performed. If a site doesn’t redirect all requests to index.php, you can use the following template for mod_rewrite:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ [R=301,L]

The same redirect can be used for other extensions of the main page as well, such as index.html, or, for example, index.phtml.

Redirect from a subdomain to a subfolder

This kind of 301 redirect is needed to redirect multiple similar pages from a sub-domain to new addresses which have a certain pattern. This problem often arises, for example, when some language versions of a site are available on a subdomain and in a subfolder of your main domain.

For example, you have a page with an address and we need to redirect it to a duplicated page We use the following template (a file prescribed for .htaccess is a subdomain) for this purpose:

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

Redirect from a domain subfolder to a subdomain

If it is necessary to redirect a user from a subfolder to a subdomain, use the following template:

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

Redirect from one file extensions to other

When you change an engine or while changing a static version of a site to dynamic, you should leave pages available by old addresses. For this purpose it is necessary to redirect old addresses of pages to pages with new extension.

RewriteRule^(.*).html$ $1.php [R=301,L]

Redirect to another site

While creating a new site, it is sometimes necessary to make it as a basic mirror, redirecting users from an old domain to a new one. You may use a template below:

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

All pages of an old domain will be redirected to corresponding pages of a new one.

301 redirect of dynamic pages

When upgrading a dynamic site and creating CNC addresses a need to redirect old pages with the ID parameters to a new CNC often appears. For example, to redirect a page from to a new page, use the following structure:

RewriteCond %{QUERY_STRING} ^id=13$ RewriteRule ^/page.php$ [L,R=301]

Redirects of Cyrillic and RF domains

All of the rules above are valid for domains written in Cyrillic. However, if you create a redirect it is better to replace Cyrillic domains with so-called Punycode. You can use one of online converting services by WhiteWhois.

The obtained encoded domain name can be easily applied to any template of the 301 redirect, as described above.

Despite the abundance of different templates and ready-made solutions, the best solution independent exploration of mod_rewrite syntax principles and its directives. Understanding basic structures allows you to easily write redirects yourself, as well as read and correct the existing .htaccess files.

Share on Facebook0Tweet about this on Twitter0Share on Google+0Pin on Pinterest0

Let's get the ball rolling

Recent posts


Use Google Chrome Tools to Boost Your Productivity

August 25, 2016

Use Google Chrome Tools to Boost Your Productivity: Suggestions from SEO Experts Have you ever thought that your everyday SEO tasks could be done more quickly so that you have more time for other important tasks? This 4-minute read contains suggestions on how to work smart applying SEO for eCommerce sites using Google Chrome extensions. Continue reading >


Destination Marketing Opportunities

August 23, 2016

Destination Marketing Opportunities: Successful 2015 The World Travel & Tourism Council reported that the direct contribution of tourism to the GDP was $2.2 trillion in 2015 with the potential to grow by more than 4 % per annum in 2016-2026. The key component of this contribution is the amount of money spent by tourists in Continue reading >


How Does Voice Search Development Influence SEO?

August 3, 2016

In the last issue of the weekly rubric of Whiteboard Friday, Rand Fishkin (Moz’s co-founder) wrote about the influence of the increase of voice and dialog search on the SEO strategies and tactics. Our expert, Andrey Ivashchenko (SEO tech lead at Promodo), commented on this article: How does Voice Search works Voice search is a Continue reading >


Promodo is Yandex Certified Partner

July 22, 2016

Yandex is one of the biggest search engines of the Eastern Europe and it has confirmed qualification of our experts. This certificate means, that we match the following conditions: •  High quality of service delivered •  Big quantity of advertising campaigns •  Reputation of one of the best web marketing agencies in the region To Continue reading >

Show all posts