2

这让我很困惑。

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

最初state_name是一个变量,我不希望每个状态都是我的StateController. 相反,我想采用该变量并以特定操作loadAction()对其进行处理以处理内容。

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

谢谢你的帮助。任何建议都将受到欢迎!

4

1 回答 1

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 请求的端点怎么办?

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

于 2012-02-23T13:10:13.510 回答