yii - urlManager:如何将路由重定向到模式

时间:2013-04-04 11:11:37

标签: yii

我有urlManager规则:

...
'/<slug:(nasha-glavnaya-zagolovok)>' => 'page/page/show',
'/pages/<slug>' => 'page/page/show',
...
一切都很好。 当我进入地址

/nasha-glavnaya-zagolovok

它会打开我需要的页面 但是,如果我尝试打开页面

/pages/nasha-glavnaya-zagolovok

它还会打开我需要的页面

但页面内容相同。

如果urlManager中的任何规则是否已计算,我如何从路径重定向(使用301标题)到模式

1 个答案:

答案 0 :(得分:0)

我不能给你完整的答案,但是你可以让它像这样工作......

你可以使用一个规则将请求发送到一个动作,该动作只是使用CController重定向:: redirect()

替换此

'/<slug:(nasha-glavnaya-zagolovok)>' => 'page/page/show',
'/pages/<slug>' => 'page/page/show',

用这个

'/<slug:(nasha-glavnaya-zagolovok)>' => 'page/page/show',
'/pages/<slug>' => 'site/redirect',

并将用户重定向到'site / redirect'操作中的/ $ slug

更新:您可以通过编写扩展CBaseUrlRule的新网址规则来使其工作,如果这是您想要做的唯一重定向,则不确定是否需要花时间来执行此操作