2012-07-03 71 views
5

我是一名php開發人員,我目前正在開發CMS /博客系統。我想添加一個像WordPress一樣的永久鏈接系統。我很好奇WordPress如何解析永久鏈接。例如,如何讓數據像idpost nameWordPress永久鏈接系統如何工作?

example.com/id/123/post/example/ 

總之,我希望有一個系統,從網址獲得idpost name。我想,讓用戶像使用標籤像WordPress改變固定鏈接結構:

id/%postid%/post/%postname%/ 

我怎麼樣$id$post_name變量數據,其中值將123example?請幫幫我。 在此先感謝。

回答

0

這取決於您使用的服務器軟件,但是如果您計劃在Apache上使用腳本,通常需要使用mod_rewrite,特別是.htaccess文件。

我會推薦閱讀關於此主題的教程。 As usual, Google is your friend

5

常用的apache模塊mod_rewrite可以幫你解決這個問題。你所做的是在.htaccess文件中寫入重寫規則,並且通過重寫,通常類似文件系統的花式結構以$ _GET參數的形式發送到PHP文件。

例如,如果你想更換是這樣的:?reactor=13/reactor/13/

寫在.htaccess文件中這個重寫規則:

RewriteEngine on 
RewriteRule reactor/([0-9]+)/$ index.php?id=$1 

現在,而不是index.php文件,如果你拉起來/反應器/ 13 /,你的index.php文件應該看到在$ _GET:現在

Array 
(
    [id] => 13 
) 

,爲您的HTML代碼,它給你手藝URL的順從你的思維結構。

這些重寫規則可能令人困惑,但它們遵循邏輯正則表達式模式。

WordPress比插入這些編輯.htaccess文件更強大的方法,他們將所有內容發送到WP,然後WP通過內部規則解決/路由其餘部分。

+0

WP源代碼在哪裏處理鏈接?我相信你是對的(創建的mod_rewrite規則非常簡單/通用),但是如果我能夠看到應該發生的情況,它會幫助我診斷出一個奇怪的問題。 – iX3

+1

WP實際上太複雜或抽象指向一個地方。你可以通過查看https://github.com/WordPress/WordPress/search?q=permalink_structure&source=cc – pp19dd