2010-04-08 97 views
0

我已經搜索了左側和右側。SEO Url重定向/使用數據庫管理鏈接重寫

我試圖找到一個腳本或方法來告訴我如何在數據庫中存儲鏈接並將它們用於重定向。

這是一個電子商務項目,我正在尋找一些東西來管理數據庫中的產品和系統URL。

像magento類似的東西。

基本上域後什麼說喜歡domain.com/demo/12/my_iphone

所以現在demo/12/my_iphone將被髮送到數據庫查詢和數據庫中會有這可能是productlisting.php?searchstring=iphones

用戶將看到鏈接domain.com/demo/12/my_iphone連結網址,但實際上他將seing productlisting.php?searchstring=iphones

基本上demo/12/my_iphone = productlisting.php?searchstring=iphones

明天如果用戶想編輯demo/12/my_iphonedemo/12/myiphone他可以使用簡單的表單來完成這個工作,它將在數據庫中進行更新。

我該如何做到這一點?

回答

0

如果涉及到這個問題,編寫這樣的解決方案並不困難。您可以從$ _SERVER ['REQUEST_URI']中獲取uri並將其傳遞到parse_url以獲取路徑。然後使用該路徑對數據庫進行查詢。

1

將apache中的mod_rewrite與PHP腳本結合使用。

1)請.htaccess文件,並把它放在一個文件夾中,說www.yourdomain.com/a/.htaccess

Options +FollowSymLinks -Indexes 
RewriteEngine On 
RewriteRule .* index.php?%{QUERY_STRING} [L] 

2)創建一個可以處理所有的請求的index.php文件

(psaudo代碼)

<?php 
/** 
* This script is simply parsing the url used, /demo/12/my_iphone 
*/ 
require_once('library.php'); 
$request_uri = $_SERVER['REQUEST_URI']; 

// parse $request_uri by splitting on slashes/
$params = my_parse_function($request_uri); // <= parse_url() is helpful here! 

$param1 = $params[0]; // "demo" 
$param2 = $params[1]; // "12";  
$param3 = $params[2]; // "my_iphone"; 

// db-lookup based on the request 
$url = fetchUrlFromDB($param1, $param2, $param3); 
if($url){ 
    header('Location: '.$url); // $url = "productlisting.php?searchstring=iphones" 
    die(); 
} 
else{ 
    echo "invalid parameters"; 
} 
?>