2016-11-29 89 views
-1

首先,对于跛脚问题(可能)感到抱歉。我试图寻找答案,但我没有找到我需要的所有问题。在不使用路由控制器的情况下更改页面URL

所以...我有一个引导的网站,我试图改变页面的URL看起来像这样:

例如:www.site.com/AboutUs.html - 显示为www.site .COM /约 - 我们

我为此使用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。

在此先感谢,并对哑巴问题感到抱歉。

快乐的日子!

+0

仅仅使用pushState来改变URL并不能真正给你使用MVC的好处。有很多很棒的教程可以帮助你开始;或者更好的是,使用已经存在的框架,如Laravel,Symfony,CakePHP等。 – WillardSolutions

回答

0

pushState的要点是能够说:我已经使用JavaScript修改了页面,如果您刚刚向服务器请求此URL,则会得到新状态

根本不应该对这个问题使用JavaScript。您只想让网页显示在特定的网址上。

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

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

您需要在服务器上处理URL /about-us

如果您在服务器上使用MVC体系结构,那么您可能会使用“控制器”......并且听起来不像您。

更有可能的是,你会希望使用Alias,一个工具,如mod_write,或者干脆动静态文件到一个名为about-us目录和重命名index.html

+0

问候和谢谢你们的答案。 我没有使用asp .net mvc所以是的,你是对的。这就是为什么我问如果没有它,它是如何完成的。 还有一个问题 - 如果我将文件移动到新的目录会影响搜索引擎优化? 这是否意味着我必须为它们中的每一个编写新的htaccess文件? 感谢您的帮助! :-) – Nikolay

+0

“我没有使用asp .net mvc” - MVC是一种常见的设计模式,并不是排除在ASP.NET MVC之上的,它仅仅是一个使用该模式的框架。 – Quentin

+0

“如果我将文件移动到新目录会影响SEO” - 请参阅[this](https://www.google.co.uk/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8# q =更改+ URL +和+ SEO) – Quentin

相关问题