基本上堆栈溢出是如何实现的。
因此,如果旧网址为:/product-old-url_152
,然后更改为/product-new-url_152
,则以下网址将全部重定向到此处:
/product-old-url_152
/product-some-other-url_152
会重定向到:
/product-new-url_152
这样做的最佳方式是什么?
编辑:152
是数据库中帖子的ID。
答案 0 :(得分:2)
一种方法:
从请求的网址中提取ID
if (preg_match('/product-(.*)_(\d+)$/', $_SERVER['REQUEST_URI'], $matches)) {
$old = $matches[1];
$id = $matches[2];
在数据库中查找新网址
$slug = fetch_slug_from_database($id);
如果网址已更改
,则向客户端发送重定向 if ($slug !== $old) {
header("Location: /product-$slug-$id");
exit;
}
}