#asp.net #url
#asp.net #url
Вопрос:
Я пытаюсь настроить CMS для запуска на моем компьютере, чтобы я мог ее модифицировать. Я усердно работал, чтобы настроить его и убедиться, что он собран. Это не мой код, поэтому мне трудно его понять. Приложение создается без ошибок и подключено к базе данных.
Я могу без проблем перейти в раздел администратора, но когда я пытаюсь просмотреть страницу по умолчанию, я получаю ошибку 404. Global.asax анализирует URL-адрес и пытается получить что-либо из XML. Я не знаком с этой техникой создания контента, поэтому я прошу помощи, чтобы заставить сайт работать, чтобы я мог добавить функции, которые я предполагаю добавить.
Вот код, который анализирует URL
Protected Sub Application_BeginRequest(ByVal s As Object, ByVal e As System.EventArgs)
If Request.ServerVariables("HTTP_USER_AGENT").ToString = "NV32ts" Then Response.End()
Dim webben As HttpApplication = DirectCast(s, HttpApplication)
'webben.Response.Write(webben.Request.Path amp; "<br />")
'webben.Response.Write(m_Context.Request.ApplicationPath)
'webben.Response.End()
'webben.Response.Write(webben.Server.MapPath(webben.Request.ApplicationPath amp; "/sitemap.xml"))
'webben.Response.End()
Dim incomingUrl As String = webben.Request.Url.ToString.ToLower.Trim
If incomingUrl.IndexOf("fckeditor") > -1 Then Exit Sub
If incomingUrl.IndexOf("admin") > -1 Then Exit Sub
If incomingUrl.IndexOf(".axd") > -1 Then Exit Sub
If incomingUrl.IndexOf(".asmx") > -1 Then Exit Sub
If incomingUrl.IndexOf("checkoutpayment.aspx") > -1 Then Exit Sub
'Nytt som rensar bort sidan, för att komma till rätta med 1.asp som istället kan vara pa-gang.aspx
Dim inc As String = incomingUrl
If inc.IndexOf(".asp") > 0 Then inc = inc.Substring(0, inc.IndexOf(".asp"))
If inc.EndsWith("/1") Then inc = inc.Substring(0, inc.Length - 2)
'inc = inc.Replace("/1.aspx", "")
'inc = inc.Replace(".aspx", "")
Dim pieces As String() = incomingUrl.Split("/")
'Dim lastPiece As String = pieces(pieces.GetUpperBound(0) - 1) 'Egentligen näst sista: pa-gang
Dim lastPiece As String = pieces(pieces.GetUpperBound(0)) 'Den absolut sista istället, eftersom jag rensar bort ovan
' End if following
'If incomingUrl.IndexOf("webresource.axd") > -1 Then Exit Sub
'If incomingUrl.IndexOf("jsdebug") > -1 Then Exit Sub
'If incomingUrl.IndexOf("adminlanguages") > -1 Then Exit Sub
'If incomingUrl.IndexOf("adminmenus") > -1 Then Exit Sub
'If incomingUrl.IndexOf("adminpages") > -1 Then Exit Sub
'If lastPiece = "admin" Then Exit Sub
' ----------------
Dim start As String = ""
start = pieces(0) amp; "/" amp; pieces(1) amp; "/" amp; pieces(2)
If pieces(2) = "localhost" Then start amp;= "/" amp; pieces(3)
Dim outgoingUrl As String = ""
Dim template As String = ""
Dim lang As String = ""
Dim menus As String = ""
Dim page As String = ""
'Fix för att xml-filernas länkar ska fungera
If incomingUrl.Contains("~") Then
Dim tmp() As String = incomingUrl.Split("~")
webben.Response.Redirect(start amp; tmp(1), True)
End If
Dim xmlpath As String = inc.Replace(start, "")
'xmlpath = .Replace("/" amp; pieces(pieces.GetUpperBound(0)), "")
If xmlpath.EndsWith("/") Then
xmlpath.Substring(0, xmlpath.Length - 1) 'Ta bort ev avslutande /
End If
If xmlpath = "/" Then xmlpath = ""
If xmlpath = "" Then Exit Sub
Dim doc As New XmlDocument
Dim path As String = webben.Server.MapPath("~/_uploads/sitemap.xml")
doc.Load(path)
'Fix för numeriska namn, släng på en _ i början för att funka i xml-filen
Dim tmpPathParts() As String = xmlpath.Split("/")
Dim tmpPath As String = "" '/"
For i As Integer = 0 To tmpPathParts.GetUpperBound(0)
If tmpPathParts(i).Length > 0 Then tmpPath amp;= "/"
If tmpPathParts(i).Length > 0 AndAlso IsNumeric(tmpPathParts(i).Substring(0, 1)) Then
tmpPath amp;= "_" amp; tmpPathParts(i)
Else
tmpPath amp;= tmpPathParts(i)
End If
Next
'Response.Write(tmpPath amp; "<br />")
'Response.Write(xmlpath amp; "<br />")
'Response.End()
xmlpath = tmpPath
Dim nodes As XmlNodeList = doc.GetElementsByTagName(lastPiece)
Dim parent As XmlNode = doc.SelectSingleNode("/root" amp; xmlpath) ' nodes(0)
'KAN OVANSTÅENDE FUNGERA? TESTA!
If parent Is Nothing Then Exit Sub
While Not (parent Is Nothing)
If parent.NodeType = XmlNodeType.Document Then Exit While
If parent.Attributes("rootid") Is Nothing Then
'Response.Write("Value: " amp; parent.ToString amp; "<br />")
'Response.Write("Att: " amp; parent.Attributes("id").Value amp; "<br />")
'Response.Write("sad: " amp; parent.LocalName amp; "<br />")
If Not parent.Attributes("langid") Is Nothing Then
lang = parent.Attributes("langid").Value
ElseIf Not parent.Attributes("menuid") Is Nothing Then
If menus <> "" Then
menus amp;= ","
End If
menus amp;= parent.Attributes("menuid").Value
Else
page = parent.Attributes("pageid").Value
End If
If template = "" Then
template = parent.Attributes("template").Value
End If
End If
parent = parent.ParentNode
End While
outgoingUrl = template amp; "?l=" amp; lang amp; "amp;m=" amp; menus amp; "amp;p=" amp; page
'Response.Write(m_Context.Request.ApplicationPath amp; "/" amp; outgoingUrl)
'Response.End()
webben.Context.RewritePath(HttpRuntime.AppDomainAppVirtualPath amp; "/" amp; outgoingUrl, True)
End Sub
Комментарии:
1. Спасибо @jadarnel27. Но я не совсем понимаю. Является ли честность проблемой на этом форуме? 😛