繁体   English   中英

IIS7 中的路由重写问题

[英]Routes Rewrite issue in IIS7

我正在使用 IIS7 / C# / WebForms / .net Framework 3.5 我在我的 web.config 中使用路由 这是一个路由部分

<system.webServer>
  ..
  <rewrite>
     <rules>

    <rule name="LoginRuleRewrite" stopProcessing="true">
        <match url="^Employee/Login$" />
        <action type="Rewrite" url="WebForms/Employees/Login.aspx" redirectType="Permanent" />
    </rule>
    </rules>
  </rewrite>

现在,当打开我的页面http://localhost/Employee/Login时,它会从 /WebForms/Employees/Login.aspx 目录正确显示登录表单。 但是当我单击登录按钮时,我收到 404 错误“未找到请求的 URL /Employee/Login.aspx”

为什么会这样? 虽然它正确显示表单,但在提交时为什么它转到 /Employee/Login.aspx 而不是 /WebForms/Employee/Login.aspx

仅供参考,此应用程序在 IIS7.5 下运行良好。 问题在于 IIS7。

您的“匹配”行将不匹配 /Employee/Login.aspx。 仅当 .aspx 扩展名不存在时才会匹配。 你应该为这样的事情 go :

<rule name="LoginRuleRewrite" stopProcessing="true">
    <match url="^Employee/Login(\.aspx)?$" />
    <action type="Rewrite" url="WebForms/Employees/Login.aspx" redirectType="Permanent" />
</rule>

感谢 LazyOne 更新正则表达式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM