2011-12-28 79 views
1

我已經有我的主要基於PHP的網站在我的網站的根文件夾中運行。讓我們稱之爲www.example.com。我有幾頁。一些導航鏈接是:WordPress的 - 顯示我的博客,隨着主站點

首頁|服務|關於我們|聯繫我們

我想添加一個WordPress的博客到這..所以繼承人我做了什麼。

網站首頁|博客|服務|關於我們|聯繫我們

請注意,我現在在網站的根文件夾中創建了一個名爲「blog」的子文件夾,並且我已經將所有的WordPress文件上傳到博客文件夾中。因此,如果我想訪問我的博客,那麼現在,我會訪問:www.example.com/blog

到目前爲止,它可以。現在,當我向博客添加新帖子時,我不希望人們在嘗試閱讀帖子時在URL中看到「/ blog」。我通過以下鏈接,但它並沒有幫助:Giving WordPress Its Own Directory

以上鍊接將有助於如果人們只是想託管他們的WordPress的網站,沒有別的。它對保持根文件夾清潔並仍然可以訪問根文件夾中的URL很有幫助。但那不是我的情況。我已經有基於PHP的網站在根文件夾中運行。我只希望 這個博客成爲一個補充,但不要顯示它添加到另一個文件夾中。

在 「設置>常規」 頁:

的WordPress地址(URL):

我在WordPress管理面板進行了如下修改以及www.example.com/blog

網站地址(URL):www.example.com

在 「固定鏈接設置」 頁面,選擇此選項:http://www.example.com/sample-post/

現在,家頁面&其他頁面加載正常。

問題:

當我訪問:www.example.com/blog,它說:

「這有點尷尬,是不是 看來,我們可以嗎?找不到你要找的東西,也許搜索,或下面的鏈接之一,可以幫助。「

  1. 我不明白爲什麼當我期望看到帖子時看到上述內容。有一個Hello Word的示例文章。我預計會看到與此相關的鏈接,但這並未發生。這是爲什麼發生?

  2. 此外,如果我點擊首頁鏈接,它會將我帶到網站的主頁,這是正確的。但是,如果我點擊「最近的帖子」下的「Sample Page」菜單鏈接或「Hello World」鏈接,地址欄中將顯示以下URL: www.example.com/hello-world/ 但是,它不顯示我的職位。相反,它加載我的網站的根文件夾的index.php頁面,這不應該發生。看起來好像CSS文件沒有加載,因爲它刪除了所有的CSS。因此,當我訪問www.example時,index.php頁面的CSS剝離版本就會出現。com/hello-world/

我試圖找到解決方案,但所有這些都導致「給WordPress自己的目錄」發佈。並且該頁面中提到的解決方案不適用於我的情況。這怎麼解決?所有的幫助表示讚賞。

謝謝。

+0

我不確定沒有檢查實際的問題,但你仍然可以嘗試給你的'wp站點地址' - >'www.example.com/blog' – Rikesh 2011-12-28 08:19:57

+0

如何鏈接到「主頁|服務|關於我們|聯繫我們「看起來像?我的意思是,你使用'mod_rewrite'還是隻是'services.php'?我想我可以帶來解決方案 – s3v3n 2011-12-28 09:13:31

+0

感謝您的回覆。我在下面給出了個人回覆。請檢查它們。 – Devner 2011-12-28 15:43:22

回答

0

我不認爲如果你做下面的事情會有一個問題:

  • 沒有必要在原始網站進行任何更改。
  • 在根目錄下創建一個名爲博客文件夾,將在這裏所有的WordPress文件。
  • 遵循快速五個步驟設置你的博客
  • 你的WordPress URL地址和網站的網址都應該 yourdomain.com/blog
  • 在「固定鏈接設置」頁面,選擇此選項:www.example .COM /樣品後/
  • 繼續喜歡你的菜單:首頁|博客|服務|關於我們|聯繫我們 與「博客」指向yourdomian.com/blog

現在,如果你的博客的菜單上點擊,你的網站URL將被yourdomian.com/blog,但如果你點擊帖子中的一個說' hello world「,那麼你的網址將是yourdomian.com/hello-world。

+0

我懷疑這會工作,因爲WP不會收到任何請求。他只會得到一個404. – s3v3n 2011-12-28 09:41:20

+0

如果你有一個.htaccess文件在根目錄中正確的配置,你不會:) – bingjie2680 2011-12-28 09:45:45

+0

是,請參閱我的答案。 – s3v3n 2011-12-28 09:58:28

1

方法我

這將是髒,我不知道這是否會甚至工作,但盡力做到folowings(我希望您的網站的程序和你不使用任何框架,否則這會使事情變得複雜一點):

  1. 將博客置於文檔根目錄中,以便所有WP鏈接都能「自然地」工作。
  2. 把你的網站文件到site/子文件夾。
  3. 現在我們做一些魔術.htaccess和重寫通過把下面的代碼你的「網站」鏈接RewriteEngine on之後:

    # do this for all pages of your site: 
    RewriteRule ^services/?$ /site/services/$1 [L,QSA] 
    # now let's try to trick WordPress and swap/with /blog 
    # so users will see /blog in adressbar, but we'll show the WP homepage 
    RewriteRule ^blog/(.*)?$ /$1 [L,QSA] 
    
  4. 現在我們應該做WP認爲/blog實際上是/,所以它不會有任何懷疑。把下面的腳本在index.php文件的WordPress,之前任何其他代碼:

    if($_SERVER['REQUEST_URI'] == '/'){ // original site homepage requested 
        include('./site/index.php'); 
        exit; 
    } 
    
    if(trim($_SERVER['REQUEST_URI'], '/') == 'blog'){ 
        $_SERVER['REQUEST_URI'] = '/'; 
        $_SERVER['QUERY_STRING'] = ''; 
    } 
    

我沒有測試過任何東西,但你應該嘗試一下這些。

方法II

我不是一個先進的WP用戶,但如果用靜態鏈接的建議玩弄從@ bingjie2680的答案會改變網址,比你可以再試試除了只有一件事回答。添加類似於以下行的內容。htaccess的那是你的文檔根(不是WP的一個):

RewriteCond %{REQUEST_URI} !^(services|about|or_other_stuff)/?$ 
    # Rewrite the request to call the WP index.php. 
    RewriteRule ^(.*)$ /blog/index.php/$1 [L,QSA] 

可能還有其他的方法,也許真正的解決方案將混合兩者的這一點。 繼續嘗試。

+0

這也是一個解決方案。好帖子。並感謝您撰寫重寫規則。 +1 – bingjie2680 2011-12-28 10:12:50

+0

@ s3v3n感謝您的評論。我嘗試了方法2,但是它在整個網站和博客中都導致了500個內部服務器錯誤。我想知道我做錯了什麼。同樣在重寫規則的第一行中,是否必須指定鏈接名稱或指向實際php文件的鏈接,例如。 services.php,about.php?我目前正在使用規則,就像你在Method2中提到的那樣,除了我用鏈接的名字替換了鏈接之外。其中一個鏈接是「與我們聯繫」,因此它存在差距。請讓我知道我能做些什麼來解決這個問題。此外,我正在嘗試跳過/在URL中的博客。謝謝。 – Devner 2011-12-28 14:55:36

+0

檢查錯誤日誌總是一個好主意。你必須像之前一樣編寫這些url,所以如果你在url中有'/ services.php',你應該在'services.php'處添加。第一行只是說:「如果請求URL不是'服務'或'關於'或...,使用這個重寫規則,所以WP可以看到它的鏈接,否則就直接使用它,所以如果你沒有'在這裏,你可能需要輸入文件名,如果在url中存在空格(你的意思是空格,不是一個好主意),乾杯 – s3v3n 2011-12-30 19:00:39

相關問題