我正在尝试缩短我的网址,以便从不同的文件夹访问我的HTML网页。
我的文件夹结构是:
My Project -Output -Files -CSS -JS -HTML
当我尝试从HTML文件夹访问文件时,我需要在浏览器中编写完整的URL
例如。 http://编码器:8055 / 文件/ HTML / Login.html
但是,我想使用URL:http:// Coder:8055 / Login.html
具有相同的文件夹结构显示从文件夹结构访问的其他HTML文件也存在同样的问题。
我希望保持相同的文件夹结构并在浏览器中显示较短的URL
如何创建此类URL以访问我的所有HTML文件...?
答案 0 :(得分:0)
如果您使用.Net ,则可以使用httphandlers
web.config中的:
<system.web>
<httpHandlers>
<add path="*.html" verb="*" type="WebSite.HttpExtensions.PageHandler" validate="false" />
</httpHandlers>
</system.web>
然后你可以做这样的事情(我用VB):
Namespace HttpExtensions
Public Class PageHandler
Implements IHttpHandler, IRequiresSessionState
Public ReadOnly Property IsReusable() As Boolean _
Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
Public Sub ProcessRequest(ByVal context As HttpContext) _
Implements IHttpHandler.ProcessRequest
Dim strURL As String = context.Request.ServerVariables("URL")
Dim newURL As String = strURL.replace("/part/of/path", "")
context.Server.Transfer(newURL, True)
End Sub
End Class
End Namespace
基本上,您在网站网址中使用的任何.html扩展程序都会将我们引导到该PageHandler类中。 server.transfer会加载你的#34;讨厌&#34; URL页面进入&#34; nice&#34;网址页面。你必须确保&#34;键入&#34; web.config中的字段匹配您设置的类的路径。在这种情况下,根命名空间只是&#34; WebSite&#34;。
如果您只想使用JavaScript修改网址,则可以使用history.pushState。
示例:
history.pushState('', '', '/login.html');
需要注意的是only work from IE10 onwards。
答案 1 :(得分:0)
这有效
history.pushState('', '', '/login.html');