我想重新编写一个aspx URL,如下所示:
.../login.aspx
至
/login
在我的网络配置中,我有:
<rewriteMaps>
<rewriteMap name="UserFriendlyURLs">
<add key="/login" value="/login.aspx"/>
</rewriteMap>
</rewriteMaps>
此规则确保用户键入时
/login
它们显示在页面上
/login.aspx
但URL保持为
login
到目前为止都很好.
现在我需要它以另一种方式,例如当用户输入时:
/login.aspx
URL仅显示
/login
我尝试过使用:
<rule name="login" stopProcessing="true">
<match url="^login.aspx"/>
<conditions/>
<action type="Rewrite" url="login"/>
</rule>
在我的网络配置中,但这给了我一个404页面未找到错误.
我怀疑这是因为我重定向到一个本身是重定向或重写URL的页面?
我也尝试过:
routes.MapPageRoute("login/", "login", "~/login.aspx");
但它也没有效果.
我做错了什么或错过了什么?
最佳答案 我需要使用重定向,而不是重写:
<rule name="Login" stopProcessing="true">
<match url="^login.aspx$"/>
<conditions/>
<action type="Redirect" url="login"/>
</rule>