我如何重写原来的url到不同的url在asp.net

本文关键字:url net asp 原来 何重写 重写 | 更新日期: 2023-09-27 17:50:48

我有一个用asp.net开发的网站。我想把URL1改成URL2。我写了几行代码在我的全局。asax文件。

void RegisterRoutes(System.Web.Routing.RouteCollection routes)
    {
        routes.MapPageRoute("mdu-b.ed-admission-process-eligibility-apply-online-2015-16.aspx", "mdu-b.ed-admission-process-eligibility-apply-online-2015-16.aspx", "~/mdu-b.ed-admission-process-and-eligibility-2015-16.aspx"); 
    }

在Application_Start(object sender, EventArgs e)方法中调用这个函数,就像这样

RegisterRoutes(System.Web.Routing.RouteTable.Routes);

场景;这段代码工作得很好,但是当我像这样打开URL(以原始URL的形式)http://www.ssbedugroup.com/mdu-b.ed-admission-process-and-eligibility-2015-16.aspx时,它不会打开更改后的URL,即http://www.ssbedugroup.com/mdu-b.ed-admission-process-eligibility-apply-online-2015-16.aspx。

你们能给我提供更好的解决方案吗?

我如何重写原来的url到不同的url在asp.net

您可以使用IIS的url重写模块轻松完成此操作。下面的web。下面的配置片段显示了如何配置它,以便将源代码重写为目标url:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="MyRule" stopProcessing="true">
          <match url="^mdu-b'.ed-admission-process-eligibility-apply-online-2015-16'.aspx$" />
          <action type="Redirect" url="http://www.ssbedugroup.com/mdu-b.ed-admission-process-and-eligibility-2015-16.aspx" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

这有效地配置了web服务器在每次请求源url时返回一个重定向响应,因此用户总是会在浏览器地址栏中看到目标url。

请记住,"match"标签接受url的正则表达式,因此您需要转义一些特殊处理的字符,如点、反斜杠、括号等。