1

我正在使用 cakphp1.3 我的问题 它是一个房产列表网站。对于显示的单个属性,我有以下网址http://srighar.com/property/view/66/1BHK-Test1-in-attingal-Ranchi-Jharkhand-for-sale 但同一页面将适用于以下所有网址 http://srighar.com/property/view/66/1BHK-Test1-in-attingal-Ranchi-Jharkhand-for mysite//srighar.com/property/view/66/1BHK-Test1-in-attingal-Ranchi mysite //srighar.com/property/view/66/1BHK-Test1-in-attingal-Ran .....等... mysite//srighar.com/property/view/66/

如果用户不小心删除了 url 上的字符,我需要为所有上述 url 维护第一个 url(/property/view/66/1BHK-Test1-in-attingal-Ranchi-Jharkhand-for-sale)。

4

1 回答 1

1

检查 url 并在必要时重定向

您需要做的就是检查 url 中的 slug 是否是当前 slug,如果不是,则301 重定向到正确的 url:

function view($id, $slug = null) {
    $record = $this->Foo->findById($id);
    if ($record['Foo']['slug'] !== $slug) {
        return $this->redirect(
            array(
                $id,
                $record['Foo']['slug']
            ),
            301
        );
    }

    ...
}

这样,如果 slug 意外错误,或者如果 slug 更改(更新原始记录),则 url 保持正确,并且每个记录都有一个强制的规范 url。

于 2013-06-17T07:56:07.020 回答