我左右搜索。
我正在尝试找到一个关于如何在数据库中存储链接并使用它们进行重定向的脚本或方法。
这是一个电子商务项目,我正在寻找从数据库管理产品和系统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
,他可以使用将在数据库中更新的简单表单来执行此操作。
我怎样才能做到这一点?
答案 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以获取路径。然后使用路径查询数据库。