Web redirection and "cloaking" with ASP.NET

NOTE: This article is specific to ASP.NET
Other versions of this article are available for:
Classis ASP script

NOTE: You can also the web redirection and cloaking using the HTTP Redirector plug-in.

Some ISPs offer "web redirection" service, where they will redirect web-requests for your domain name to another website.
For example from www.myname.com to www.ispname.com/~myname
or from www.myname.com to myname.ispname.com.

You can do simple redirection with CNAME (alias) DNS records, but this does not work if you need to redirect to a sub-directory (like the first sample above), or if the destination web-server is using virtual hosting (multiple domain names on the same IP address).

Domain redirection is most often done on a web-server with some type of script.
(often in combination with a database if redirecting many domain names)

You can do this with ASP.NET on IIS. The following examples are in VB.NET.

First create a DNS A-records for the domain name pointing to the IIS web-server that will do the redirection (not the destination web-server).

Then create a "default.aspx" page on this web-server with the following contents:

Select Case Request.Url.Host
Case "myname.com", "www.myname.com"
Case "othername.com", "www.othername.com"
End Select

Add "case" statements for each domain name you want to redirect.
You can automate this further with a database containing each domain name and corresponding redirect destination.

On IIS you can also point 404 errors (page not found) to this ASP page so requests for individual pages will also be redirected correctly.

Another variant of this is called "cloaking" - where your domain name still shows in the browser's address bar even after the redirection.
This is achieved by "hiding" the redirection in a frame-set where the first frame is zero width or height:

Dim destURL As String
Select Case Request.Url.Host
Case "myname.com", "www.myname.com"
  destURL = "http://www.ispname/~myname"
Case "othername.com", "www.othername.com"
  destURL = "http://www.ispname/~othername"
End Select
  <frameset cols="0,*" framespacing="0" border="0" frameborder="0">
    <frame name="zero" scrolling="no" noresize>
    <frame name="main" src="<%=destURL%>">

For more information, please see the following knowledge base articles:

KB Article Web redirection and "cloaking" with classic ASP script
KB Article HTTP Redirector Plug-In