重写动态 Magento URL



我在Nginx Web服务器上安装了Magento v1.4.1.1。我正在尝试重写以下动态 URL:

#5028 is the dynamic id passed in the URL
$baseUrl/design/index/index/design_id/5028

自:

$baseUrl/my/design/5028

我已经使用Magento的"URL重写管理"来重写静态URL,没有问题。但似乎我不能使用动态参数。

我还尝试在我的server{}位置内对 Nginx 配置执行以下操作

rewrite ^/my/designs/([0-9]+)$ /design/index/index/design_id/$1 last;

但是它没有得到抓住,如果我尝试访问http://mysite.com/my/design/5028,我会不断收到 404 错误

紧挨着这条规则的另一条规则完美运作

rewrite ^(/fb)/design/([0-9]+)$ $1/landing_no_contest.php?design_id=$2? last;

感谢您的任何帮助。

是的,Magento的"URL重写管理"不支持动态链接,afaik。

不过,您可以通过编程方式按design_id添加静态重写:

$iStoreId = 1;
$sOptions = 'RP'; // 'RP' for a 301, or 'R' for a 302
$aDesignId = array(5026, 5027, 5028);
foreach ($aDesignId as $iDesignId) {
    Mage::getModel('core/url_rewrite')
        ->setStoreId($iStoreId)
        ->setCategoryId(null)
        ->setProductId(null)
        ->setIdPath(str_replace('0.', '', str_replace(' ', '_', microtime())))
        ->setRequestPath('design/index/index/design_id/' . $iDesignId)
        ->setTargetPath('my/design/' . $iDesignId)
        ->setIsSystem(0)
        ->setOptions($sOptions)
        ->save();
}

最新更新