如何在不知道输入URL的情况下重定向到正确的URL

时间:2017-04-18 15:27:55

标签: php .htaccess redirect

基本上堆栈溢出是如何实现的。

因此,如果旧网址为:/product-old-url_152,然后更改为/product-new-url_152,则以下网址将全部重定向到此处:

/product-old-url_152

/product-some-other-url_152

会重定向到:

/product-new-url_152

这样做的最佳方式是什么?

编辑152是数据库中帖子的ID。

1 个答案:

答案 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;
    }
}