2015-09-07 102 views
1

我們目前的網站URL是使用AngularJS建,因此有/#/網址,在其中諸如http://www.website.com/#/termsofuse重定向與/#/

短視,對於條款或使用該網址已被硬編碼到移動應用程序,雖然這已經改變,但一些用戶仍然有舊版本。

我們要搬到一個WordPress站點(在Azure上運行)和新的URL中使用的術語是http://www.website.com/termsofuse

的問題是,我想如果使用舊的URL重定向到新的URL(從舊版本的硬編碼應用程序),但我無法找到一種方式與URL中的/#/做到這一點(否則我可以在舊URL使用HTML/JS重定向)。

我嘗試過在Google和這裏搜索解決方案,但雖然我確定有人遇到過這個問題,但我很難定義搜索條件以獲得有價值的結果。

我也考慮發佈這個WordPress的stackexchange,但它不是一個真正的WordPress的問題,我假設我需要使用其他方法。

欣賞任何想法或建議。提前致謝。


到目前爲止,我已經從我可能需要一個JS的解決方案,並根據我發現下面的它看起來類似的反應教訓(至少說明我如何在URL後的片段隔離)。由於我的問題是非常具體的,我只需要尋找具體的片段#/ termsofuse我可以使用這段代碼(與midification)來尋找該字符串和重定向的基礎上呢?

Checking URL fragment for a keyword

+1

可能重複http://stackoverflow.com/questions/15133023/hash-url-rewrite-in-htaccess ) – baao

+0

我想知道是否有可能在它指向的錯誤頁面上有一些邏輯,閱讀引用地址......(我不知道,它是一個過去的想法!) –

+0

謝謝@ michael這看起來像一個類似的問題,但閱讀和鏈接的帖子,我仍然不確定如何解決我的問題。 – petebulley

回答

0

通過您的描述,因爲您的新網站建立在沒有AngularJs的WordPress上。

因此它很難以傳統方式接近您的需求。由於標籤#是一個永遠不會傳遞到服務器上的客戶端符號,因此Azure上的IIS不會獲得URL的#之後的部分,URL重寫模塊也不會看到它。

因此,如果可能修改您的WordPress網站的主頁,這裏是一個解決方法,使用JavaScript獲取#的URL後重定向到正確的URL。 這裏是代碼片段:

(function() { console.log(window.location.href); var url = window.location.href; params = url.split('#'); console.log(params); if(params[1]){ window.location.href = params[1]; } })();

[在.htaccess '散列' URL重寫](的
+0

感謝這是解決一般問題的好方法。對我的具體需求唯一的問題是,我只希望這發生在一個特定的實例../#/termsofuse而不是其他實例,例如我使用錨點的地方。我實現了你的解決方案,它適用於URL重定向問題,但是當我在網站上使用錨點時,他們現在不能工作 - 是否有一種方法可以修改你的代碼片段以便爲一個變量工作? – petebulley

+0

我們可以檢測往那它是一個錨之前重定向'如果(PARAMS [1] == '/ termsofuse'){ window.location.href =參數[1]; }' –

+0

完美的作品,謝謝你的幫助! – petebulley

1

可悲的是,這是不可能的,因爲#後一切都不會發送到服務器。

很多人在這種情況下做的是使用javascript/ajax解決方案來加載頁面。

+0

你有沒有對JavaScript/AJAX我可以用什麼建議? – petebulley