• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 796
  • Last Modified:

301 Redirect Entire Website using web.config

I would like to redirect one site to our new domain.  We want every page and directory to redirect to the homepage.  Write now using:
<httpRedirect enabled=”true” destination=”http://www.usaviationacademy.com” httpResponseStatus=”Permanent” />

Open in new window

It carries the file name which breaks the redirection since the new files are all named different.
0
ProduceResults
Asked:
ProduceResults
  • 5
  • 2
  • 2
  • +1
1 Solution
 
strickddCommented:
I think you would be better off doing this at the IIS level instead of the web.config level: http://www.mcanerin.com/en/articles/301-redirect-iis.asp
0
 
ProduceResultsAuthor Commented:
I don't believe I have IIS access.  It is a shared hosting account with Godaddy.  I called Godaddy and they told me I had to do it via web.config.  Do I have IIS access and not know it?
0
 
strickddCommented:
Ah... therein lies the problem. I would recommend adding it to the global.asax Application_BeginRequest.

The web.config method is to map a 1-to-1 with a new domain for every page. If you want:

www.mysite.com/page1.aspx
www.mysite.com/page2.aspx

to both redirect to:
www.mynewsite.com

Then you need something like this in your global.asax:

HttpContext.Current.Response.Status =

        "301 Moved Permanently";

    HttpContext.Current.Response.AddHeader("Location",

        "http://www.mynewsite.com");
0
Prepare for your VMware VCP6-DCV exam.

Josh Coen and Jason Langer have prepared the latest edition of VCP study guide. Both authors have been working in the IT field for more than a decade, and both hold VMware certifications. This 163-page guide covers all 10 of the exam blueprint sections.

 
ProduceResultsAuthor Commented:
hmmm I will look at this and reply back
0
 
RovastarCommented:
What version of IIS do you have?

If it is IIS7.x there may be some solutions.
0
 
ProduceResultsAuthor Commented:
yes the Godaddy hosting shows IIS 7.x
0
 
Brad HoweCommented:
IIS7/ 7.5 has the URL rewrite feature and GoDaddy supports URL REWRITE Module now.
http://help.godaddy.com/article/5443

(http://www.iis.net/download/urlrewrite)

Here is a sample redirect for yourdomain.com to www.google.com. Here is a sample web.config for you.
The highlighted part is what is need should you already have a web.config.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>

  </system.web>
  <system.webServer>
         <rewrite>
          <rules>
          <rule name="Domain to new Domain Redirect" stopProcessing="true">
          <match url="^(.*)$" ignorecase="True" />
          <conditions logicalGrouping="MatchAll">
              <add input="{HTTP_HOST}" pattern="^www.olddomain.com$" />
        </conditions>
         <action type="Redirect" url="http://www.usaviationacademy.com" appendQueryString="False" redirectType="Permanent" />
         </rule>
          </rules>
          </rewrite>

   </system.webServer>
</configuration>

Cheers,
Hades666
0
 
ProduceResultsAuthor Commented:
I get an internal server error: usflightacademy.com

Here is a copy of the Web.config file:

<?xml version="1.0"?>
<!-- 
    Note: As an alternative to hand editing this file you can use the 
    web admin tool to configure settings for your application. Use
    the Website->Asp.Net Configuration option in Visual Studio.
    A full list of settings and comments can be found in 
    machine.config.comments usually located in 
    \Windows\Microsoft.Net\Framework\v2.x\Config 
-->

<configuration>
	<configSections>
		<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
			<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
				<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
				<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
					<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
					<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
					<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
					<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/></sectionGroup></sectionGroup></sectionGroup></configSections><appSettings/>
	<connectionStrings/>
	<system.web>
		<!-- 
            Set compilation debug="true" to insert debugging 
            symbols into the compiled page. Because this 
            affects performance, set this value to true only 
            during development.
        -->
		<compilation debug="false">
			<assemblies>
				<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
				<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
				<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
				<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies></compilation>
		<!--
            The <authentication> section enables configuration 
            of the security authentication mode used by 
            ASP.NET to identify an incoming user. 
        -->
		<authentication mode="Forms"/>
		<!--
            The <customErrors> section enables configuration 
            of what to do if/when an unhandled error occurs 
            during the execution of a request. Specifically, 
            it enables developers to configure html error pages 
            to be displayed in place of a error stack trace.
        -->
		<customErrors mode="Off"><!--defaultRedirect="GenericErrorPage.htm"-->
			<!--    <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />-->
		</customErrors>
		<pages>
			<controls>
				<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
				<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></controls></pages>
		<httpHandlers>
			<remove verb="*" path="*.asmx"/>
			<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			<add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></httpHandlers>
		<httpModules>
			<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></httpModules></system.web>
	<system.codedom>
		<compilers>
			<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
				<providerOption name="CompilerVersion" value="v3.5"/>
				<providerOption name="WarnAsError" value="false"/></compiler>
			<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
				<providerOption name="CompilerVersion" value="v3.5"/>
				<providerOption name="OptionInfer" value="true"/>
				<providerOption name="WarnAsError" value="false"/></compiler></compilers></system.codedom>
	<system.webServer>
<rewrite>
          <rules>
          <rule name="Domain to new Domain Redirect" stopProcessing="true">
          <match url="^(.*)$" ignorecase="True" />
          <conditions logicalGrouping="MatchAll">
              <add input="{HTTP_HOST}" pattern="^www.usflightacademy.com$" />
        </conditions>
         <action type="Redirect" url="http://www.usaviationacademy.com" appendQueryString="False" redirectType="Permanent" />
         </rule>
          </rules>
          </rewrite>
		<validation validateIntegratedModeConfiguration="false"/>
		<modules>
			<remove name="ScriptModule"/>
			<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></modules>
		<handlers>
			<remove name="WebServiceHandlerFactory-Integrated"/>
			<remove name="ScriptHandlerFactory"/>
			<remove name="ScriptHandlerFactoryAppServices"/>
			<remove name="ScriptResource"/>
			<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			<add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></handlers></system.webServer>
	<runtime>
		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v2.0.50727"><dependentAssembly>
				<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/></dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/></dependentAssembly></assemblyBinding></runtime></configuration>

Open in new window

0
 
Brad HoweCommented:
This rule works properly - Just tested it locally. I appeared to have had a typo in that post.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>

  </system.web>
  <system.webServer>
          <rewrite>
          <rules>
          <rule name="Domain to new Domain Redirect" stopProcessing="true">
          <match url="^(.*)$" />
          <conditions logicalGrouping="MatchAll">
                        <add input="{HTTP_HOST}" pattern="^www.usflightacademy.com$" />
        </conditions>
         <action type="Redirect" url="http://www.usaviationacademy.com" appendQueryString="False" redirectType="Permanent" />
         </rule>
          </rules>
          </rewrite>
   </system.webServer>
</configuration>

Cheers,
Hades666
0
 
ProduceResultsAuthor Commented:
Great... Thanks!
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

  • 5
  • 2
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now