Kuvilam Blog

301 redirect

How to do 301 redirect?

A permanent redirect is a 301 redirect. The server delivers the 301-Permanently Moved status code to the user’s browser and directs them to another website when they attempt to access an outdated URL. Users and website owners can benefit from this because it implies they will be taken to the next most essential page.

What is 301 redirection ?

Its is one of the HTTP status code, which guide the search engines to indicate that the actual URL (old URL) has been update and pointed to a new URL permanently.
Its is also called permanent redirection.

When is it better to use 301 redirects?

For pages – if the page has permanently moved or has been replaced by a new page
For domains – if the site has been moved to a new domain (site’s sale, rebranding, etc.
For 404 error – to avoid the 404 (page not found error) for the pages and its content that has lost its relevance, its better to use 301 redirect to preserve your traffic and page rank.

Benefit of 301 Redirection

Normally this can help to preserve your existing traffic, ranking and back links.

How to do 301 redirection using .htaccess file

The 301 redirect can be done across domains or on the same domain. This is the clean and easy way to redirect a URL using .htaccess file for your website.

#301 Redirects for .htaccess

#Redirect a single page:

Redirect 301 /pagename.php http://www.domain.com/pagename.html

#Redirect an entire site:

Redirect 301 / http://www.domain.com/

#Redirect an entire site to a sub folder

Redirect 301 / http://www.domain.com/subfolder/

#Redirect a sub folder to another site

Redirect 301 /subfolder http://www.domain.com/

This will redirect any file with the .html extension to use the same filename but use the .php extension instead.

RedirectMatch 301 (.*)\.html$ http://www.domain.com$1.php

Redirect from old domain to new domain

RewriteEngine on
RewriteBase /
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

#Redirect to www location

RewriteEngine on
RewriteBase /
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

Redirect to www location with subdirectory

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/directory/index.html [R=301,NC]

Redirect from old domain to new domain with full path and query string:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*) http://www.newdomain.com%{REQUEST_URI} [R=302,NC]

#Redirect from old domain with subdirectory to new domain w/o subdirectory including full path and query string:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/subdirname/(.*)$
RewriteRule ^(.*) http://www.domain.com/%1 [R=302,NC]

Rewrite and redirect URLs with query parameters (files placed in root directory)

Original URL: http://www.example.com/index.php?id=1

Desired destination URL: http://www.example.com/path-to-new-location/

.htaccess syntax:

RewriteEngine on
RewriteCond %{QUERY_STRING} id=1
RewriteRule ^index\.php$ /path-to-new-location/? [L,R=301]

Redirect URLs with query parameters (files placed in subdirectory)

Original URL: http://www.example.com/sub-dir/index.php?id=1

Desired destination URL: http://www.example.com/path-to-new-location/

.htaccess syntax:

RewriteEngine on
RewriteCond %{QUERY_STRING} id=1
RewriteRule ^sub-dir/index\.php$ /path-to-new-location/? [L,R=301]

Redirect one clean URL to a new clean URL

Original URL: http://www.example.com/old-page/

Desired destination URL: http://www.example.com/new-page/

.htaccess syntax:

RewriteEngine On
RewriteRule ^old-page/?$ $1/new-page$2 [R=301,L]

Rewrite and redirect URLs with query parameter to directory based structure, retaining query string in URL root level

Original URL: http://www.example.com/index.php?id=100

Desired destination URL: http://www.example.com/100/

.htaccess syntax:

RewriteEngine On
RewriteRule ^([^/d]+)/?$ index.php?id=$1 [QSA]

Rewrite URLs with query parameter to directory based structure, retaining query string parameter in URL subdirectory

Original URL: http://www.example.com/index.php?category=fish
Desired destination URL: http://www.example.com/category/fish/

.htaccess syntax:

RewriteEngine On
RewriteRule ^/?category/([^/d]+)/?$ index.php?category=$1 [L,QSA]
Domain change – redirect all incoming request from old to new domain (retain path)

If you do not want to pass the path in the request to the new domain, change the last row to:

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

#From blog.oldsite.com -> www.somewhere.com/blog/

retains path and query, and eliminates extra blog path if domain is blog.oldsite.com/blog/

Options +FollowSymLinks

RewriteEngine On
RewriteCond %{REQUEST_URI}/ blog
RewriteRule ^(.*) http://www.somewhere.com/%{REQUEST_URI} [R=302,NC]
RewriteRule ^(.*) http://www.somewhere.com/blog/%{REQUEST_URI} [R=302,NC]


Comments

One response to “How to do 301 redirect?”

  1. […] ones. In the event that essential URLs are discovered, either update the content on these URLs or 301 redirect the URL to a more appropriate replacement. This URL might be interpreted as a soft 404 if a highly […]

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.