c# - asp.net中如何实现URL重写

标签 c# asp.net

我正在尝试重新编写一个 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/

相关文章:

asp.net - ASP.NET Web 应用程序/网站中的 IP 地址阻止列表

c# - 将 C++ COM 对象更新为 C#

c# - 登录用户名和文本框文本未保存在数据库中

c# - int => 工作日名称

asp.net - NLog 不记录日志

asp.net - dotnet run 命令找不到用户 secret

asp.net - SSL 系统.Security.Authentication.AuthenticationException :

c# - 捕获插件 UserControl 抛出的异常

c# - 使用 AutoFixture 中的 AutoMock 对构造函数中的响应式(Reactive)代码进行单元测试?

c# - 在 ASP.NET Web Api C# 中通过流发送和接收大文件