2013-05-02 59 views
-1

我正在尋找一種簡單的解決方案來重寫PHP中的URL。客戶希望將它們存儲在數據庫中,所以我不能使用mod_rewrite。PHP中的mod_rewrite樣式URL替換

基本上我尋找一個PHP的解決方案來實現這一目標:

^/(.*).html ==> /page.$1.html 

這樣的PHP代碼的存在呢?先謝謝你。

+0

mod_rewrite的全部重點是識別運行哪個PHP(或HTML)文件。一旦它到達PHP文件,該過程已經結束並完成。 – 2013-05-02 19:08:25

回答

0

我不完全確定你的例子是什麼意思,因爲它本質上會創建一個永無止境的重定向循環。

^/(.*).html ==> /page.$1.html ==> /page.page.$1.html ==> /page.page.page.$1.html ==> etc. 

,因爲你說你得到從數據庫,你要採取的,而不是(.*)

特定字符串的這些規則,你想要做的是什麼你想要的比賽我假設使用$_SERVER['REQUEST_URI']變量進行搜索,然後使用PHP進行重定向。類似這樣的:

foreach ($searches as $string) { 
    if (preg_match("@^/$string\[email protected]", $_SERVER['REQUEST_URI'])) { 
     header("HTTP/1.1 301 Moved Permanently"); 
     header("Location: http://www.yoursite.com/page.$string.html"); 
    } 
}