不使用路径控制器更改页面URL

时间:2016-11-29 15:16:32

标签: javascript html url

首先,抱歉这个蹩脚的问题(可能)。我试图寻找答案,但我找不到我需要的所有问题。

所以...我有一个引导程序网站,我正在尝试将页面URL更改为如下所示:

例如:www.site.com/AboutUs.html - 显示为www.site.com/about-us

我正在使用pushState方法,因为它如下:

var stateObj = { AboutUs: "about-us" };
history.pushState(stateObj, "About Us", "about-us"); 

所以我在那里得到了所需的URL地址(www.site.com/about-us)..到目前为止一切顺利。但是在页面刷新时会抛出一个错误,说明"在此服务器上找不到请求的URL / about-us。" 如果我点击后面的浏览器按钮,它会再次访问www.site.com/AboutUs.html。(它应该会出现在主页上)

我的问题是:

我错过了什么,我应该做一个控制器,怎么做?

我不使用C#,我可能会使用PHP的一些帮助因为我不擅长它。欢迎使用JavaScript / jQuery。

提前致谢并抱歉这个愚蠢的问题。

快乐的日子!

1 个答案:

答案 0 :(得分:0)

pushState的要点是能够说:我已经使用JavaScript修改了页面,如果您刚要求服务器提供此URL,新状态就是您所获得的

根本不应该使用JavaScript来解决这个问题。您只想在特定的网址上显示一个页面。

您需要将服务器配置为在所需的URL上提供所需的内容。

  

我错过了什么,我应该制作一个控制器吗?

您需要服务器上的某些内容来处理网址/about-us

"控制器"如果你在服务器上使用MVC架构,那么你可能会使用它......它听起来并不像你。

您更有可能希望使用Aliasmod_write之类的工具,或者只是将静态文件移动到名为about-us的目录并重命名为index.html