IIS7 URL从根目录重定向到子目录

时间:2011-08-10 22:43:27

标签: url iis-7 redirect

我正在使用带有IIS7的Windows Server 2008。我需要将前往www.mysite.com的用户重定向到wwww.mysite.com/menu_1/MainScreen.aspx。这是我对项目的文件结构:

-Sites
 -Default Web Site
  -Menu_1
  -MenuService
  -VscWebService

我真的很感激你的帮助。

4 个答案:

答案 0 :(得分:111)

在这里。将此代码添加到web.config文件中:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Root Hit Redirect" stopProcessing="true">
                <match url="^$" />
                <action type="Redirect" url="/menu_1/MainScreen.aspx" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

它将执行301永久重定向(URL将在浏览器中更改)。如果你想让这种“重定向”不可见(重写,内部重定向),那么使用这个规则(唯一的区别是“重定向”已被“重写”替换):

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Root Hit Redirect" stopProcessing="true">
                <match url="^$" />
                <action type="Rewrite" url="/menu_1/MainScreen.aspx" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

答案 1 :(得分:38)

我认为,这可以在没有IIS URL重写模块的情况下完成。 <httpRedirect>支持通配符,因此您可以这样配置:

  <system.webServer>
    <httpRedirect enabled="true">
      <add wildcard="/" destination="/menu_1/MainScreen.aspx" />
    </httpRedirect>
  </system.webServer>

请注意,您需要在IIS上启用“HTTP重定向”功能 - 请参阅HTTP Redirects

答案 2 :(得分:14)

我无法使用已接受的答案,主要是因为我不知道在哪里输入该代码。我到处寻找一些有意义的URL重写工具的解释,却找不到任何解释。我最终在IIS中使用了HTTP重定向工具。

  1. 选择您的网站
  2. 单击IIS部分中的HTTP重定向(确保已安装角色服务)
  3. 选中“将请求重定向到此目的地”
  4. 输入您要重定向的位置。在你的情况下“wwww.mysite.com/menu_1/MainScreen.aspx”
  5. 在Redirect Behavior中,我发现我必须检查“只将请求重定向到此目录中的内容(不是子目录),否则它将进入循环。看看哪些对您有用。
  6. 希望这会有所帮助。

答案 3 :(得分:4)

您需要从Microsoft下载此代码:http://www.microsoft.com/en-us/download/details.aspx?id=7435

该工具被称为“用于IIS 7的Microsoft URL重写模块2.0”,并由Microsoft描述如下: “URL Rewrite Module 2.0提供了一种基于规则的重写机制,用于在Web服务器处理之前更改请求的URL,并在将响应内容提供给HTTP客户端之前对其进行修改”