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

发布于 2024-08-31 20:57:43 字数 566 浏览 7 评论 0原文

我正在使用 Zend Router,所以像 (/ 和 /index.php) 或 (/about 和 /index.php/about) 这样的东西在这里最终是一样的。

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

我该如何避免这种情况?

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

I'm using the Zend Router and so things like (/ and /index.php) or (/about and /index.php/about) ends up as the same here.

However, /index.php/whatever should not exist as it is the exactly same resource as /whatever so it doesn't make a sense the duplication.

How do I avoid this?

Even http://zendframework.com/manual/en/zend.controller.router.html and http://zendframework.com/index.php/manual/en/zend.controller.router.html both exists. It doesn't make any sense at all...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟沫凡尘 2024-09-07 20:57:43

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

2) 添加重写规则,从包含 /index.php 的任何请求中删除它。您必须确保将其转发到 index.php 以便您仍然可以处理它,并且您可能想要发送 以 3 开头的状态代码

1) Don't link to it (like the urls in your question) and let it be a hidden feature. It won't matter, basically.
or
2) Add a rewrite-rule to strip out /index.php from any request containing it. You have to be sure to forward it to index.php so that you still can handle it, and you probably want to send a status code beginning with 3.

一杯敬自由 2024-09-07 20:57:43

似乎您的 mod_rewrite 配置不正确(Apache 中是否启用了 mod_rewrite.htaccess 配置是否正确?)。如果是这样,您根本不必输入 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]

Seems that your mod_rewrite is not configured properly (is mod_rewrite enabled in Apache? Is .htaccess configured properly?). When it would be, you wouldn't have to type index.php at all.

Edit:

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]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文