[英]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.