Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2663
  • Last Modified:

Setup IIS 7.5 URL Rewrite to redirect root request to index.htm

I have several re-write rules setup using the IIS 7.5 URL Rewrite add-on.  All of the re-writes are working fine.  Currently with all of these re-writes enabled, when a user requests http://domain.com/ they are being redirected to another server. I want them to be re-directed to another server when they match one of my other regular expressions.  When a user does not enter in anything (ie: hits the root of the site http://domain.com/ ), I want them to be transferred to the index.htm file on the same server. Something like this could easily be done using the Apache Mod Rewrite using a regex like "^/", however, IIS 7.5's seems to match the URL path after the first "/" that is requested.

Is there any way to do this?  Below is what I have tried so far.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
            <rule name="Index Request" enabled="true" stopProcessing="true">
                    <match url="^/" />
                    <conditions>
                        <add input="{REQUEST_URI}" pattern="^/" />
                    </conditions>
                    <action type="Redirect" url="http://domain.com/index.htm" logRewrittenUrl="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Any suggestions?
 iis 7.5 url rewrite
0
COV-Webmaster
Asked:
COV-Webmaster
  • 4
  • 4
1 Solution
 
käµfm³d 👽Commented:
Perhaps this would work:
<add input="{REQUEST_URI}" pattern="^$" />

Open in new window

0
 
COV-WebmasterCity Of VancouverAuthor Commented:
Thanks Kaufmed.  It would make sense that that would work, but for whatever reason it doesn’t.
This is what I tried:

<rule name="Index Request" enabled="true" stopProcessing="true">
	<match url="^/" />
	<conditions>
		<add input="{REQUEST_URI}" pattern="^$" />
	</conditions>
	<action type="Redirect" url="http://domain.com/index.htm" logRewrittenUrl="true" />
</rule>

Open in new window

0
 
käµfm³d 👽Commented:
Now that I think about it, why wouldn't you just specify the "default document" to be index.htm ?
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
COV-WebmasterCity Of VancouverAuthor Commented:
The index.htm is specified as the default document. The URL Rewriting rules are processed before the default document or any document is loaded. The default document is never loaded because I have other rules in place.
0
 
käµfm³d 👽Commented:
>> The URL Rewriting rules are processed before the default document or any document is loaded.

Right, but if the user doesn't supply a URI (i.e. they go to the website root), then none of the rules should match, and the default document should be loaded. I could be missing something though.
0
 
COV-WebmasterCity Of VancouverAuthor Commented:
Here is how I got it working.  The rule below will allow all of the other rules below it to still process and will allow the root document to be loaded when I hit the http://domain.com/ root site:

<rule name="Index Request" enabled="true" stopProcessing="true">
                  <match url="^(.+)$" negate="true" />
                  <conditions>
                        <add input="{REQUEST_URL}" pattern="^(.+)$" negate="true" />
                  </conditions>
                  <action type="None" logRewrittenUrl="true" />
                </rule>

Open in new window

0
 
käµfm³d 👽Commented:
Cool. Glad you found a solution  = )
0
 
COV-WebmasterCity Of VancouverAuthor Commented:
This rule works.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

  • 4
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now