我正在使用Zend路由器,因此(/和/index.php)或(/ about和/index.php/about)之类的内容最终会相同。
然而,/ index.php/whatever不应该存在,因为它与/是完全相同的资源,所以它没有意义重复。
我该如何避免这种情况?
即使http://zendframework.com/manual/en/zend.controller.router.html和http://zendframework.com/index.php/manual/en/zend.controller.router.html都存在。它根本没有任何意义......
答案 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]