我创建了模块并将 url 路径重写为:
<rewrite>
<xxx>
<from><![CDATA[#^/signup/(.*)#]]></from>
<to>/xxx/index/index/address/$1/</to>
</xxx>
</rewrite>
并描述了此操作的布局:
<?xml version="1.0" encoding="UTF-8"?>
<layout version="0.1.0">
<xxx_index_index translate="label">
<remove name="yyy" />
如果 url 是“/xxx/index/index/address/yyy”,那么一切正常。但是如果 url 路径是“/signup/yyy”,那么控制器可以正常工作,但不会加载它的布局。
UPD:我在我的控制器中添加了句柄(感谢@mpaepper)“xxx_index_index”,然后使用以下方法获取句柄:Zend_Debug::dump($this->getLayout()->getUpdate()->getHandles());
array(6) {
[0] => string(7) "default"
[1] => string(13) "STORE_default"
[2] => string(44) "THEME_frontend_private_sales_theme_1_default"
[3] => string(17) "signup_test2552_index"
[4] => string(19) "customer_logged_out"
[5] => string(24) "xxx_index_index"
}
相同的结果 - 默认布局。