0

我有 urlManager 规则:

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

一切都好。当我输入地址时

/nasha-glavnaya-zagolovok

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

/pages/nasha-glavnaya-zagolovok

它还打开了我需要的页面

但是页面的内容是一样的。

如果 urlManager mathced 中的任何规则,我如何将(使用 301 标头)从路由重定向到模式?

4

1 回答 1

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',

并在“站点/重定向”操作中将用户重定向到 /$slug

更新:您可以通过编写扩展 CBaseUrlRule 的新 url 规则来使其工作,如果这是您想要做的唯一重定向,不确定您是否愿意花时间这样做

于 2013-04-04T17:04:42.547 回答