我如何重写原来的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。
你们能给我提供更好的解决方案吗?
您可以使用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的正则表达式,因此您需要转义一些特殊处理的字符,如点、反斜杠、括号等。