2010-12-24 26 views
2

我想知道如何使用PHP創建乾淨的URL。我在PHP中做這一切還是需要以某種方式使用mod_rewrite?有人可以用俗語來解釋這一點嗎?PHP - 如何將頁面標題添加到URL?以及如何使用PHP創建一個乾淨的URL

這裏是我當前的URL一個元素鏈接和它的外觀在瀏覽器中

http://www.example.com/members/1/posts/page.php?aid=123 

但我想它閱讀的頁面標題。

http://www.example.com/members/1/posts/title-of-current-page/ 
+1

是否使用

http://example.com/weblog/archive

將被轉換成以下只有PHP或某種框架呢?這些URL看起來像來自框架。 – zsalzbank 2010-12-24 00:58:22

+0

@codethis,沒有框架只是我使用php編碼 – HELP 2010-12-24 01:05:17

回答

1

首先,你需要從PHP生成「冠軍的電流頁」,使用此功能如:

function google($string){ 
    $string = strtolower($string); 
    $string = preg_replace('/[^a-zA-Z0-9]/i','-',$string); 
    $string = preg_replace("/(-){2,}/",'$1',$string); 
    return $string; 
} 

第二件事,你需要重寫,但你應該保持援助「/ 123-冠軍的電流頁」的形式

重寫會去這樣的事情(我忽略了你的整個URL)

RewriteRule ^([0-9]+)-(.*?)$ page.php?aid=$1 [L,QSA] 
+0

如果你有一個數據庫匹配你的援助#到標題,你將不需要保持在字符串中的數字。只需編寫一個查詢查詢功能即可。這種方式更乾淨的網址。 – TH1981 2010-12-24 01:01:41

0

您必須使用重寫來將所有請求指向現有的php文件,否則您將得到所有404 not found錯誤,因爲您正在嘗試獲取一個根本不存在的頁面。

除非你重寫你的404頁面來處理所有的請求,你絕對不想將去那裏......

1

爲此,您可以使用mod_rewrite:

你需要編輯一個文件在您的web文件夾的頂層調用.htaccess。這是您可以指定某些設置以控制Apache訪問此文件夾及其下的項目的方式。

第一件事第一件事。讓我們開啓了mod_rewrite:RewriteEngine On

RewriteRule ^([a-z]+)/([a-z\-]+)$ /$1/$2.php [L] 

規則後面是/這是小寫字母形成的任何URL,火柴,那麼更多的小寫字母和/或連字符,並追加.php後綴結尾。它跟蹤括號()中包含的任何內容,稍後將它們稱爲$ 1和$ 2,即第一次和第二次匹配。所以,如果有人訪問以下網址:

http://example.com/weblog/archive.php

你會發現更多的細節:

http://wettone.com/code/clean-urls