Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript history.pushstate如何允许嵌套url路径的单个入口点_Javascript_Apache_Pushstate_Singlepage - Fatal编程技术网

Javascript history.pushstate如何允许嵌套url路径的单个入口点

Javascript history.pushstate如何允许嵌套url路径的单个入口点,javascript,apache,pushstate,singlepage,Javascript,Apache,Pushstate,Singlepage,对不起,我的问题措辞很糟糕 PHP与apache一起使用index.PHP/index.html作为目录URL,如: localhost=localhost/index.php或localhost/place=localhost/place/index.php 如果我从以下几点开始: 本地主机/位置 我使用一个javascript history.pushstate来更新一个长地址的url,如: localhost/place/subplace 然后,如果我在浏览器中输入该url,我将转到loc

对不起,我的问题措辞很糟糕

PHP与apache一起使用index.PHP/index.html作为目录URL,如: localhost=localhost/index.php或localhost/place=localhost/place/index.php

如果我从以下几点开始: 本地主机/位置 我使用一个javascript history.pushstate来更新一个长地址的url,如: localhost/place/subplace 然后,如果我在浏览器中输入该url,我将转到localhost/place/subplace/index.php,因为我确实希望localhost/place/index.php允许该url成为唯一的输入点

我正在使用简单的javascript(window.location.pathname或anchorNode.pathname)检索url路径,以便与ajax一起使用。一个类似于backbone.js的简单路由器使用它来更新页面。javascript路由工作,浏览器中的后退/前进工作。如果我能让它与地址栏中输入的URL的单一入口点一起工作就好了

总而言之:

我希望我的php应用程序有一个单一的入口点来获取所有子目录

在单个入口点,我希望运行javascript来获取路径,并使用它使用ajax路由页面

我正在使用history.pushState更新url,但当目录比主目录长时,这会影响应用程序的单个入口点。基本上我得到了404页

现在我不太关心如何使它与没有history.pushState的浏览器向后兼容。我只想让这件事起作用

作为附录,我更喜欢使用javascript中的常规路径,而不是查询字符串。无论页面加载的是地址栏还是history.pushState,这都是我喜欢的。我不知道这是否可以通过apache重写或其他方式处理

类似问题:


好的。我把事情弄得太难了

要使路由在页面加载时工作,我需要做两件事

在.htaccess文件中,我可以使用ApacheRewrite使所有URL路由到index.php?path=first/second/third

当页面加载时,只需将查询字符串中的新路径连接到处理路由的javascript字符串

javascript仍在使用,并且没有重复的功能。一切都很好

这也回答了这个问题: