如何在asp.net 3.5中重写url

时间:2010-11-16 05:31:08

标签: vb.net

我将项目从html转换为aspx

问题是,所有扩展都改变了。

e.g。 “ www.example.com \ index.html ”已更改为“ www.example.com \ index.aspx

给SEO带来了问题。

所以现在当我搜索网页时,我得到链接为www.example.com \ index.html,如果我尝试进入它,它会给我 404文件找不到的错误

我为URL-ReWriting尝试了几种方法,它在本地端工作正常,但在服务器端失败。

我都试过Global.asax

1

Protected Overloads Sub Application_BeginRequest(ByVal sender As Object, ByVal e As System.EventArgs)

        Dim CurrentPath As String = Request.Path.ToLower()
        Dim strPageName As String = CurrentPath.Substring(CurrentPath.LastIndexOf("/") + 1, (CurrentPath.LastIndexOf(".") - CurrentPath.LastIndexOf("/")) + 4)

        If strPageName.EndsWith(".html") Then
            Select Case strPageName
                Case "index.html"
                    RewriteUrl(CurrentPath)
            End Select
        End If
End Sub

Protected Sub RewriteUrl(ByVal URL As String)
    Dim CurrentPath As String = URL
    CurrentPath = CurrentPath.Replace(".html", ".aspx")
    Dim MyContext As HttpContext = HttpContext.Current
    MyContext.RewritePath(CurrentPath)
End Sub

2

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    RegisterRoutes(RouteTable.Routes)
End Sub

Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
    routes.Add("Index", New Route _
    ( _
       "index.html", New CustomRouteHandler("~/index.aspx") _
    ))
End Sub

1 个答案:

答案 0 :(得分:0)

您是否拥有对Web服务器的控制权?您最有可能需要SEO的方法是创建永久(301)URL重定向,您可以在Web服务器级别执行...通常在服务器设置或脚本文件中。

请参阅:http://en.wikipedia.org/wiki/URL_redirection

我意识到这并没有直接回答你的问题,但如果你要做的就是将搜索结果带到正确的新页面,这是最好的方法。