SEO Url使用数据库管理链接重定向/重写

时间:2010-04-08 15:35:22

标签: php url-rewriting

我左右搜索。

我正在尝试找到一个关于如何在数据库中存储链接并使用它们进行重定向的脚本或方法。

这是一个电子商务项目,我正在寻找从数据库管理产品和系统URL的东西。

与magento类似的东西。

域名之后的任何内容基本上都是domain.com/demo/12/my_iphone

所以现在demo/12/my_iphone将被发送到数据库进行查询,在数据库中将有一个目标网址,可以是productlisting.php?searchstring=iphones

用户会看到链接domain.com/demo/12/my_iphone,但实际上他会看到productlisting.php?searchstring=iphones

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

明天,如果用户想要demo/12/my_iphone编辑为demo/12/myiphone,他可以使用将在数据库中更新的简单表单来执行此操作。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分: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";
}
?>

答案 1 :(得分:0)

如果涉及到这样的解决方案并不困难。您可以从$ _SERVER ['REQUEST_URI']中获取uri并将其传递给parse_url以获取路径。然后使用路径查询数据库。