使用Zend路由?定制网址

时间:2012-02-23 11:19:54

标签: zend-framework routes uri custom-routes

这让我很困惑。

如何自定义/state/state_name替换为/state/state_name.php

最初state_name是一个变量,我不希望每个州都成为StateController中的一个动作。相反,我想采用该变量并在特定的操作loadAction()中处理它以处理内容。

这是因为网址/state/state_name.php已经过SEO优化,我希望它使用Zend Framework保持这种形式。

感谢您的帮助。欢迎任何建议!

1 个答案:

答案 0 :(得分:2)

可能是这样的:

$route = new Zend_Controller_Router_Route_Regex(
    'state/([^/]+)\.php',
    array(
        'controller' => 'state',
        'action'     => 'load',
    ),
    array(
        'state_name' => 1,
    ),
    'state/%s.php'
);

但为什么保留.php后缀非常重要?如果有的话,它会不必要地暴露用于构建页面的底层服务器端技术。如果您以后将整个站点更改为Ruby On Rails或Django怎么办?为什么要把自己绑在PHP上?

如果你真的很喜欢后缀,那么我认为.htm.html更好。但即便如此,也会让你走上一条带有可能难闻气味的道路。如果要将此同一个控制器用作返回JSON或XML数据的AJAX请求的端点,该怎么办?

就个人而言,我会对后缀保释。