将我当前的产品 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/