我有urlManager规则:
...
'/<slug:(nasha-glavnaya-zagolovok)>' => 'page/page/show',
'/pages/<slug>' => 'page/page/show',
...
一切都很好。
当我进入地址
/nasha-glavnaya-zagolovok
它会打开我需要的页面 但是,如果我尝试打开页面
/pages/nasha-glavnaya-zagolovok
它还会打开我需要的页面
但页面内容相同。
如果urlManager中的任何规则是否已计算,我如何从路径重定向(使用301标题)到模式?
答案 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的新网址规则来使其工作,如果这是您想要做的唯一重定向,则不确定是否需要花时间来执行此操作