将旧网址重定向到新的网址模式


嗨,我想

将我当前的产品 URL 结构更改为新的 URL,但我想让我的旧 URL 结构正常工作,因为有人链接到我的产品。

如何在不为每个产品手动创建 301 重定向的情况下执行此操作?

不确定您拥有的Prestashop版本,刚刚在1.6.1.6中尝试过你可以这样覆盖:

<?php
class Dispatcher extends DispatcherCore
{
    protected function loadRoutes($id_shop = null)
    {
        parent::loadRoutes($id_shop);
        $language_ids = Language::getIDs();
        if (isset($context->language) && !in_array($context->language->id, $language_ids)) {
            $language_ids[] = (int)$context->language->id;
        }
        foreach ($language_ids as $id_lang) {
            foreach ($this->default_routes as $id => $route) {
                if($id == "product_rule")
                    $this->addRoute(
                        'product_rule2',
                        '{id}-{rewrite}{-:ean13}.xhtml',
                        'product',
                        $id_lang,
                        $route['keywords'],
                        isset($route['params']) ? $route['params'] : array(),
                        $id_shop
                    );
            }
        }
    }
}

在这种情况下,我对 xhtml 使用了第二条规则(如果没有这个覆盖,它给出了 404)。您可以将 {id}-{rewrite}{-:ean13}.xhtml 更改为您拥有的规则,然后在 SEO 中更改规则以您想要新规则。

请写下你的ps版本。如果您使用 1.5 或更高版本?

你现在使用这个结构吗 {category:/}{id}-{rewrite}{-:ean13}.html ? 或{类别:/}{重写}{-:ean13}.html or this {category:/}{rewrite}.html

请写下更多细节

取决于它只是制定HT访问规则([0-9]+) 表示标识(.*) 表示重写并使用重定向匹配永久并将结果设置为 $1、$2 等

该指南必须有助于理解 HTepE URL 重写 https://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/

最新更新