How to do 301 redirects in Apache .htaccess, IIS, PHP, ASP and ColdFusion
Establish proper search-friendly 301 redirects to manage duplicate content issues and changes to your site's information architecture (URL structure) with the specific instructions for your server software below:
- Apache Web Server .htaccess file
- Microsoft IIS Web Server
- PHP 4+
- Microsoft Active Server Pages (ASP)
- ColdFusion 3+
Apache Web Server .htaccess file
Apache .htaccess files let you override the Web server configuration on a per-directory hierarchial basis, and are instrumental in the creation of proper 301 redirects. For more information, consult the Apache .htaccess Tutorial and the Apache URL Rewriting Guide.Single Page Redirect:
Redirect 301 /old/url /new/url
or
Redirect Permanent /old/ur /new/url
or
Redirect Permanent /old/ur /new/url
Canonical Hostname Redirect (non-www to www):
This solution will redirect any page requested via a non-www domain to the same URL with the www domain, and as such it can be placed in the DocumentRoot of your site and will be enforced globally:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
Microsoft IIS Web Server
Note: these instructions require administrative access to IIS. If you do not have this access (e.g., if you have a shared hosting account on a Windows server), you should use one of the server-side scripting methods such as ASP or PHP given further below.Single Page Redirect:
- Open Internet Services Manager and right-click on the file or folder you wish to redirect.
- Select the radio button "a redirection to a URL".
- Enter the desitnation page for the redirect.
- Check "The exact url entered above" and the "A permanent redirection for this resource".
- Hit "Apply".
PHP 4 and PHP 5
Single Page Redirect:
<?php
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.new-url.com/');
?>
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.new-url.com/');
?>
Canonical Hostname Redirect (non-www to www):
<%
If InStr(Request.ServerVariables("SERVER_NAME"),"www") = 0 Then
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www." & Request.ServerVariables("HTTP_HOST") & Request.ServerVariables("SCRIPT_NAME")
Response.End
End if
%>
Active Server Pages (ASP)
Single Page Redirect:
<%
Response.Status="301 Moved Permanently"
Response.AddHeader='Location','http://www.new-url.com/'
%>
Response.Status="301 Moved Permanently"
Response.AddHeader='Location','http://www.new-url.com/'
%>
Canonical Hostname Redirect (non-www to www):
This code should be inserted into a global include file or any ASP script which is executed for every page on the site before the page output begins:
<%
If InStr(Request.ServerVariables("SERVER_NAME"),"www") = 0 Then
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www."
& Request.ServerVariables("HTTP_HOST")
& Request.ServerVariables("REQUEST_URI")
Response.End
End if
%>
ColdFusion
Single Page Redirect:
<cfheader statuscode="301" statustext="Moved permanently">
<cfheader name="Location" value="http://www.new-url.com/">
<cfheader name="Location" value="http://www.new-url.com/">
