如何在asp.net中将原始URL重写为不同的URL?

时间:2015-05-27 06:56:42

标签: c# asp.net url-rewriting

我有一个在asp.net开发的网站。我想将URL1更改为URL2。 我在global.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(对象发送者,EventArgs e)中调用此函数,就像这样

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

情景是;此代码工作正常,但当我打开这样的网址(原始网址形式)http://www.ssbedugroup.com/mdu-b.ed-admission-process-and-eligibility-2015-16.aspx时,它不会打开更改的网址,即http://www.ssbedugroup.com/mdu-b.ed-admission-process-eligibility-apply-online-2015-16.aspx

你们能为我提供更好的解决方案,我怎样才能解决问题?

1 个答案:

答案 0 :(得分:0)

您可以使用IIS的网址重写模块轻松完成此操作。以下web.config配置代码段显示了如何配置它以将源重写到目标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。

请记住&#34;匹配&#34;标签接受url的正则表达式,因此你需要转义一些特殊处理的字符,如点,反斜杠,括号等。