【问题标题】:How can i rewrite original url to different URL in asp.net?如何将原始网址重写为 asp.net 中的不同网址?
【发布时间】:2015-05-27 06:56:41
【问题描述】:

我有一个用 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(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

你们能给我提供更好的解决方案吗?我该如何解决我的问题?

【问题讨论】:

    标签: c# asp.net url-rewriting


    【解决方案1】:

    您可以使用 IIS 的 url 重写模块轻松完成此操作。以下 web.config 配置 sn -p 显示了如何配置它以便将源重写为目标 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>
    

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

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

    【讨论】:

    • 但是如果我刷新页面ssbedugroup.com/…它显示资源找不到
    • @SoftonicAura 你能详细说明你做了什么吗?您是否尝试按照我的建议配置 IIS url 重写?
    猜你喜欢
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多