将旧URL重定向到新的URL模式

时间:2017-01-09 15:58:29

标签: .htaccess prestashop url-redirection

您好我想将我当前的产品网址结构更改为新网址,但我希望保留原有网址,因为我的产品已关联。

如果不为每个产品手动创建301重定向,我该怎么做?

2 个答案:

答案 0 :(得分:0)

不确定你有什么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中的规则以希望您想要新的规则。

答案 1 :(得分:0)

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

您现在使用此结构{category:/} {id} - {rewrite} { - :ean13} .html?要么 {category:/} {rewrite} { - :ean13} .html或this {category:/} {rewrite} .html

请写更多详情

取决于它只是制定htaccess规则 ([0-9] +)为id (。*)用于重写 并请使用RedirectMatch永久 并设置为$ 1,$ 2等的结果

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