2016-02-26 69 views
0

假設我們有一個建立在AngularJS上的網站。我們通過將HTML5mode設置爲true來弄清楚如何從url中隱藏不漂亮的/#!/個字符。但是,我們有一個問題,當遊客來到舊網址的鏈接,包括/#!/www.example.com/#!/products/的網站重定向他主頁www.example.com這當然我們不意味着我們預計他重定向到www.example.com/products/因此我們嘗試寫一個說,很多重寫規則,如果你通過與/#!/舊鏈接去網站比它應該重定向到新鏈接沒有/#!/。但是這對我們不起作用,我們確信重寫規則是可以的。AngularJS隱藏#!重寫

AngularJS的設置會出現一些問題嗎? 感謝您的時間和建議!

+0

哪些服務器端語言是您使用 – oseintow

+0

@oseintow謝謝。這些數據首先只能用於客戶端代碼。 – Quentin

+0

在你的情況下它是無關緊要的,因爲你已經將客戶端與服務器分離了。我同意 – oseintow

回答

2

片段標識符永遠不會被髮送到服務器,這樣你就可以與他們正在使用服務器端代碼(包括重寫)沒有處理。你必須用客戶端代碼來處理它們。

0

我解決了這個問題,但我可不是100%肯定它是如何工作的,我想知道這一點。我需要做的只是在html5Mode的設置後添加hashPrefix('!')

$locationProvider.html5Mode(true).hashPrefix('!'); 

現在它按照我們想要的方式工作,但實際上hashPrefix('!')究竟做了什麼?我剛剛從文檔中發現它「配置現有提供商」但爲什麼隱藏#!沒有這個工作?

請你能解釋一下我本人對這個話題的最後兩個問題。這應該是無關的 -