freshpromo Toronto SEO

How Do I Implement a 301 Redirect?

A 301 redirect allows visitors and search engines to access a web page after it has been moved. If you have changed the domain name of your web site or changed the file names of pages, then you need to link to the new URLs for visitors and search engine spiders. The 301 permanent redirect is the most search engine-friendly method of redirection to the new URL or page and is the current standard for SEO purposes. Here are instructions on how to code a 301 redirect, depending on your system.

.htaccess 301 Redirect

If the .htaccess file does not exist, create a new file with no trailing extension after the ".htaccess" using a plain text editor (Remember to put the period at the beginning of the file name!). For a Mac, we recommend BBEdit; for Windows, TextPad. Upload it to the root directory of your old web site. Usually that's in /public_html or /www on your server. *Note: your web server must be a Linux system and have Apache mod_rewrite module enabled.

Add the following to your .htaccess file:

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.new-site.com/$1 [R=301,L]

If you decide to change filenames of individual pages of your site, you can redirect the old URLs to the new URLs by using the following line as an example:

redirect 301 /old_page.html http://www.yourdomain.com/abc/new_page.html

PHP Redirect:

<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.new-domain.com" );
?>

In ASP:

Open the old web page and replace all its content with the following code, replacing "www.new-location.com" with the file name of the new page.

<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.new-location.com"
%>

In ASP .NET:

<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.new-location.com");
}
</script>

In IIS (on a Windows server):

1. In internet services manager, right click on the file or folder you wish to redirect.
2. Select "a redirection to a URL".
3. Enter the redirection page.
4. Check "The exact url entered above", and the "A permanent redirection for this resource".
5. Click "Apply".

web.config 301 redirect

The first example will redirect single pages to a new location. For example, important pages of your site have .htm extensions and you want the new location to be its own directory (IE. http://domain.com/services.htm will change to http://domain.com/services/).

1. Open web.config in the directory where the old pages reside
2. Then add code for the old location path and new destination as follows:

<configuration>
  <location path="services.htm">
    <system.webServer>
      <httpRedirect enabled="true" destination="http://domain.com/services" httpResponseStatus="Permanent" />
    </system.webServer>
  </location>
  <location path="products.htm">
    <system.webServer>
      <httpRedirect enabled="true" destination="http://domain.com/products" httpResponseStatus="Permanent" />
    </system.webServer>
  </location>
</configuration>

You may add as many location paths as necessary.

The second example will redirect an entire directory to a new location. For example, if you want http://domain.com/olddir/ redirected to http://domain.com/newdir/ open web.config in /olddir and add the following line of code within the <system.webServer> section:

<httpRedirect enabled="true" destination="http://domain.com/newdir" httpResponseStatus="Permanent" />

In ColdFusion:

Add the following to the ColdFusion page:

<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://www.new-site.com">

Canonical Issues - Redirecting non-www to www:

Some webmasters prefer to redirect domain.com to www.domain.com for search engine optimization purposes. The thought is that some incoming links point to their non-www domain and some point to the www domain. So if the domains are consolidated, incoming links are as well. Webmasters who use this redirect usually see instances of search engine rankings with and without the www in their listings and want to consolidate their efforts.

Canonical Redirect using .htaccess

Add the following four lines to your .htaccess file, replacing 'domain.com' with your site's domain. Remember, you need to be hosted on a Linux server with the Apache Mod-rewrite module enabled.

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

Canonical Redirect using IIS 7.0

For this to work, you need to download and enable the URL Rewrite module for IIS 7. Then the following code is used in the ASP.NET web.config file:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Redirect to WWW" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^domain.com$" />
          </conditions>
          <action type="Redirect" url="http://www.domain.com/{R:0}"
               redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration>

 

If you need further help setting up a 301 redirect it is recommended that you contact your web hosting provider. Changes to server configuration should only be made by experienced webmasters. Freshpromo offers the above instructions as a guide and makes no guarantees as to web site performance.