我正在尝试重新编写一个 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>
关于c# - asp.net中如何实现URL重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32326559/