如何避免Zend Framework中的index.php?

时间:2010-05-07 13:20:55

标签: zend-framework routing zend-route

我正在使用Zend路由器,因此(/和/index.php)或(/ about和/index.php/about)之类的内容最终会相同。

然而,/ index.php/whatever不应该存在,因为它与/是完全相同的资源,所以它没有意义重复。

我该如何避免这种情况?

即使http://zendframework.com/manual/en/zend.controller.router.htmlhttp://zendframework.com/index.php/manual/en/zend.controller.router.html都存在。它根本没有任何意义......

2 个答案:

答案 0 :(得分:0)

1)不要链接到它(就像你问题中的网址)并让它成为一个隐藏的功能。基本上没关系。

2)添加重写规则以从包含它的任何请求中去除/index.php。您必须确保将其转发至index.php,以便您仍然可以处理它,并且您可能希望发送status code beginning with 3

答案 1 :(得分:0)

似乎您的mod_rewrite未正确配置(在Apache中启用mod_rewrite?是.htaccess configured properly?)。如果是这样,您根本不必输入index.php

编辑:

RewriteEngine On

RewriteCond %{REQUEST_URI} ^index.php [OR]

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]