How To Set Up A 301 Redirect On IIS, Non-www Domain Name To Www Domain Name
To further elaborate on a article I wrote: 301 Redirects And Domains With And Without WWW, I wanted to discuss the actual implementation of a 301 redirect on IIS.
I was recently asked by a client on detailed instructions on how to properly set up a 301 redirect on IIS to redirect a non-www domain to the www domain. This cannot be done in the IIS control panel because when set up the IIS will force the website to loop to itself, thus never loading in a browser properly. In Apache this can be done with a couple of simple lines of code in the .htaccess file. In IIS it is much more difficult...but not impossible.
First off, to be clear, you have two options:
1. You can create a new IP based web site in Internet Services Manager using the mydomainname.com address. You will now have two websites set up in IIS one for www.mydomainname.com and one for mydomainname.com. of course not everyone has an extra IP to do this. If you don't you can use the option below.
2. You can add another website on the same IP with the host header value (virtual website) option. The second website would be mydomainname.com under the host header domain of www.mydomainname.com.
Once one of these are set up you see both will return a 200 server response when checking the server headers.
Of course our next step would be to change the server response for mydomainname.com domain to show 301 redirection to www.mydomainname.com. Here is the code you should put in the NEW default home page file for mydomainname.com:
ASP:
< %@ Language=VBScript %>
< %
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", http://www.mydomainname.com
%>
It should show a 301 response and then redirect to www.mydomainname.com.
Of course you could do this without creating a new website by using ISAPI_Rewrite, but this is not available on most hosting accounts. You could install it yourself, but once again not sure if the hoster will even support it for you. IIS can be very yucky sometimes, but using the instructions above you can implement the 301 redirect your looking for.
This article has been taken from webdesign.org.