开发者

Use urlrewrite to rewrite all requests to root

I want to use web.config and IIS's urlrewrite to rewrite all requests to a certain directory to the root, for example:

From:

mydomain.com/directory/test.php

To:

mydomain.com/test.php

and

From:

mydomain.com/directory/test/test.php
开发者_如何学C

To:

mydomain.com/test/test.php

All parameters, etc should be passed as well. Any idea how to do this using web.config?


I had a requirement for this a while back and found this:

Using Url rewrite to "delete" a folder

There's a small error in the rule which was corrected later by the poster. Here's a copy with the correction should the link dry up (I also made it a bit more generic for your requirements):

<rewrite>
  <rules>   
    <rule name="RemoveDirectory" stopProcessing="true">
      <match url="^directory$|^directory/(.*)$" />
      <conditions>
      </conditions>
      <action type="Redirect" url="{R:1}" />
    </rule>
    <rule name="RewriteToFile">
      <match url="^(?!directory/)(.*)" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="directory/{R:1}" />
    </rule>
  </rules>
</rewrite>

Just search and replace directory with your directory name.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜