Magento 2 URL 以编程方式重写是在线零售商想要创建大量网站流量的绝佳解决方案之一。重写 url 的目的是允许您通过编程方式生成 301 重定向到Magento 2 。

什么是 URL 重定向?

URL 重定向SEO中的一个流行术语,它用于将访问者导航到商店所有者期望的任何链接。重定向主要有两种类型:301 重定向和 302 重定向因此,如果您想知道如何继续与当前站点的现有访问者合作,同时您计划构建一个更高效的新站点,最好的答案是通过重定向 301 创建搜索重定向。

在 Magento 中以编程方式添加 URL 的 2 个步骤
第 1 步:生成构造函数文件

/**
* @var \Magento\UrlRewrite\Model\UrlRewriteFactory
*/
protected $_urlRewriteFactory;

/**
* @param Context $context
* @param \Magento\UrlRewrite\Model\UrlRewriteFactory $urlRewriteFactory
*/
public function __construct(
    Context $context,
    \Magento\UrlRewrite\Model\UrlRewriteFactory $urlRewriteFactory
) {
    $this->_urlRewriteFactory = $urlRewriteFactory;
    parent::__construct(
        $context
    );
}


第 2 步:在执行方法中插入自定义 URL 重写

仅当您的原始网站是example.com/customModule/customController/customAction时,您才希望将URL重写为,www.example.com/xyz而不是。然后您可以运行以下方法:

$urlRewriteModel = $this->_urlRewriteFactory->create()
/* set current store id */
$urlRewriteModel->setStoreId(1);
/* this url is not created by system so set as 0 */
$urlRewriteModel->setIsSystem(0);
/* unique identifier - set random unique value to id path */
$urlRewriteModel->setIdPath(rand(1, 100000));
/* set actual url path to target path field */
$urlRewriteModel->setTargetPath("www.example.com/customModule/customController/customAction");
/* set requested path which you want to create */
$urlRewriteModel->setRequestPath("www.example.com/xyz");
/* set current store id */
$urlRewriteModel->save();