2011-10-05 44 views
1

我正在使用php,mysql在CMS上工作。重命名後維護某些頁面的鏈接

我存儲在MySQL數據庫我的頁面信息:表列pagesidtitletitle_urlpublished_time,...)

什麼是保有環節的某些頁面,如果客戶重新命名他們的最佳解決方案? (重命名後titletitle_url變化)

例子:
鏈接到頁面 - >homepage/gold_news
客戶重命名gold_newsgold_price_news(現title_url在數據庫gold_price_news
老鏈接到頁面 - >homepage/gold_news,它沒有按不再工作了。

+0

您需要根據title_url創建您的網址 – matino

回答

1

您可以在名爲「redirectId」表中添加一個新的領域

thenn在表中創建一個新的行新的URL(插入編號:999)

和老行你將設定值redirectId = 999

當請求舊網址使用HTTP 301狀態碼

1

我會使用的.htaccess(國防部重寫)和ID和標題的組合,將其重定向到新的URL字段在您的數據庫中。

首先,所有的網頁網址/鏈接應該是形式:

yourdomain.com/page/idnumber/pagetitle 

隨着「PAGETITLE」純文本可讀性目的是那裏的服務沒有目的(僅僅是從您的數據庫標題值),並且id是頁面的實際引用(數據庫中該頁面的id)。

由於您正在使用id作爲頁面的錨定引用,所以用戶更改數據庫中的頁面標題/ URL並不重要,因爲記錄的ID是固定的。然後

你的.htaccess應包含:

RewriteEngine On 
RewriteRule ^page/(.*)/(.*)/?$ yourdomainpath/pagehandler.php?pageid==$1 [NC,L] 

這樣做是採取以上(如yourdomain.com/page/1/my頁/)和路由指定類型的URL請求加載內容的php腳本,例如yourdomainpath/pagehandler.php,將ID作爲GET變量'pageid'傳遞。

用戶看到一個不錯的乾淨的URL,然後.htaccess在幕後「重定向」到您的腳本,該腳本將URL從URL中取出並獲取鏈接到您數據庫中此ID的內容。由於這是基於id的,用戶可以擁有免費領域來更改數據庫中其他字段的內容,而不需要知道任何效果。一個不錯的乾淨解決方案。