2016-11-29 44 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

相關問題