如何使用Javascript / JQuery缩短URL?

时间:2014-11-27 10:57:37

标签: javascript jquery html

我正在尝试缩短我的网址,以便从不同的文件夹访问我的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文件...?

2 个答案:

答案 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');