2013-12-18 69 views
0

對於「經典」網站,可以爲每個網頁創建一個/foldername/index.php。但是,使用WordPress,情況並非如此。例如,如果使用WordPress創建的網頁的URI爲http://myblog.org/some_page,則在您的虛擬主機的FTP中找不到文件夾www/myblog.org/some_page使用PHP,WordPress風格服務網頁

我的問題是,我怎樣才能爲http://[MY_WEBSITE].com/[page_name]任何位置的任何page_name提供頁面,而不會爲每個page_name創建一個新文件夾?

+1

考查[htaccess的mod_rewrite的](http://www.branded3.com/blogs/htaccess-mod_rewrite-ultimate-guide /)。 – Marty

回答

0

該行爲通過.htaccess文件處理(在Apache服務器中),其中rewrite rules已定義。重寫規則基本上捕獲傳入流量並將這些請求引導到服務器上的文件(通常是單個頁面,將作爲router)。

路由器然後負責獲取輸入URI(通常通過PHP中的$_SERVER["REQUEST_URI"])並計算出如何處理它,並最終確定該請求的輸出結果。

至於一個體面的路由器,你可以看看klein.php。此外,一個簡單的例子:

# htaccess file 
RewriteEngine On 
RewriteRule ^[^\.]+$ index.php 

index.php

$route = $_SERVER["REQUEST_URI"]; 

if($route === '/home') 
{ 
    echo 'This is the homepage'; 
} 
+0

這是舊的,但我改變了第二個規則爲'重寫規則。 index.php [L] '它運作得非常好 – geoff

0

你告訴你的服務器到rewrite the URL。大多數服務器都是以自己的方式進行操作,因此要了解如何操作,請查看服務器的文檔。

0

Wordpress使用模板,利用require()函數和一個通常稱爲「The Loop」的foreach循環來檢索內容。

使用不同的模板調用不同的頁面。如果您想確切知道如何計算此邏輯,請查看this.

1

一種方法是使用page_name作爲常用文件的參數並使用它來提供所需頁面的內容。

+0

這會涉及到更改URL爲'my-website.com/index.php?page = somepage'?否則,你會怎麼做? – geoff

+0

是的,參數化的網址 – minas

+0

我確實知道這個功能,但那不完全是我想要的。我仍然想保留'my-site.com/my-page/my-subpage/ ...'URL樣式,而不必爲每個頁面創建一個單獨的'index.php'頁面。 – geoff