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

use*_*148 73 url redirect iis-7

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

-Sites
 -Default Web Site
  -Menu_1
  -MenuService
  -VscWebService
Run Code Online (Sandbox Code Playgroud)

我真的很感激任何帮助.

Laz*_*One 120

这里是.将此代码添加到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>
Run Code Online (Sandbox Code Playgroud)

它将执行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>
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的答复。它仍然不适合我。首先,我将它添加到 wwwroot web.config 并且在那里不起作用。因此,我在服务器级别(服务器 &gt; 站点 &gt; 默认网站)打开了 URL 重写,但它仍然无法正常工作。我在这里做错了吗?再次感谢您的帮助。 (2认同)
  • @ user881148 这条规则确实有效——我在发布前测试过。1) 也许它被放置在错误的顺序/位置?规则的顺序很重要:如果您已经有一些规则,则在其他规则之前添加此规则。2)_“服务器&gt;站点&gt;默认网站”_——这不是服务器级别——它是由IIS安装程序创建的默认普通网站——仅此而已。3) 尝试通过 GUI(IIS 管理器)手动创建此规则——这很简单——只需填写几个字段。4) 也许您的 ASP.NET 路由处理所有重写并忽略 URL Rewrite 模块。以某种方式检查一下(抱歉,我不擅长 ASP.NET)。 (2认同)
  • 我建议使用 &lt;match url="^\/?$" /&gt; 以确保如果用户在 URL 末尾指定 / 则它可以工作。 (2认同)

Sha*_*had 44

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

  <system.webServer>
    <httpRedirect enabled="true">
      <add wildcard="/" destination="/menu_1/MainScreen.aspx" />
    </httpRedirect>
  </system.webServer>
Run Code Online (Sandbox Code Playgroud)

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


Jar*_*rod 14

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

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

希望这可以帮助.