2013-06-02 157 views
0

我想定製我的wordpress永久鏈接的結構稍微超出默認提供的。我想添加#/前/%postname%/,所以,與其當前的永久鏈接:添加/#/到WordPress的永久鏈接

http://www.mybusinesssite.com/about/thecompany

我得到這個:

http://www.mybusinesssite.com/#/about/thecompany

編輯:這裏是不是工作:頁面的實際永久鏈接是http://www. mybusinesssite.com/about/thecompany - 但是當我將該頁面加載到主索引頁面時,url顯示更改爲http://www. mybusinesssite.com/#/about/thecompany。該頁面顯示正常,但無法正確加入書籤,因爲通過書籤訪問http://www. mybusinesssite.com/#/about/thecompany會將用戶導向頁面的初始狀態,而不是從/ about/thecompany加載內容的頁面。我想要做的是有實際的頁面固定鏈接爲#/about/thecompany。然後,我將用JavaScript分段該網址,刪除最初的​​網段,並在JavaScript哈希後添加其他所有內容。因此,我將在他的網址中有#/about/thecompany,這將是該網頁的實際網址。

這怎麼辦?

+0

我會認爲他們可能是一個更簡單的解決方案,通過使用htaccess重寫? – bob

+0

請您詳細說明,@lawnlanders? –

+2

沒有JavaScript就沒有意義。 URL的散列部分用於動態加載內容而不刷新頁面。這不是可以用PHP –

回答

3

如上評論指出:#後的URL部分沒有傳遞給服務器 - 在,只有用戶的瀏覽器也知道。如果用戶書籤:與哈希字符的鏈接 - 訪問時,唯一會離開用戶設備的部分是http://www.example.com/ - 即使您按照自己的意願自定義您的WordPress網址,它也不會工作(它可以適用於任何其他角色,但對於#

要解決您的問題,您需要在門戶網站根目錄上的javascript解決方案 - 它甚至可以變成一個簡單的解決方案。 (閱讀原來的URL,其中的JavaScript在客戶端,包括字符過去#,並從服務器加載,刪除#

5

正確解釋here,因爲根本不會傳輸到服務器,所以您無法通過PHP讀取散列之後的任何內容。

你可以在你的第一頁上有一個腳本通過ajax獲取子頁面,但這對搜索引擎和一般可用性來說會是一團糟。

jQuery(document).ready(function($) { 
    if(window.location.hash) { 
     // Fragment exists, redirect to url without # 
     window.location = window.location.replace("#",""); 
    } 
}); 
+0

瞭解如何使用PHP進行添加。還有其他的方式來添加它嗎?你能解釋一下爲什麼哈希會對搜索引擎和一般可用性構成一團糟? –

+0

你可以對服務器端做任何事情。你必須使用JavaScript。我猜你正在使用AJAX來獲取子頁面?那麼只需要對hashtag進行onload檢查。這很糟糕,因爲搜索引擎不解析JavaScript,因爲頁面無法正確緩存,並且每個請求都被延遲並且第一個請求被重複。 – MarZab

+0

請您詳細說明這一部分,@MarZab:「做一個hashtag的onload檢查」 - 這是如何完成的,它實現了什麼? –