2010-04-08 86 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"; 
} 
?>