从 zend 框架上 apache 2.4.6 的 url 中删除 index.php
Posted
技术标签:
【中文标题】从 zend 框架上 apache 2.4.6 的 url 中删除 index.php【英文标题】:Remove index.php from url on apache 2.4.6 on zend framework 【发布时间】:2015-07-26 03:19:03 【问题描述】:我在 zend 框架 1 中有一个项目,其中 google 用 http://www.example.com/index.php/url 而不是 http://www.example.com/url 索引链接,从而创建重复和不需要的链接。
我在htaccess中有这个规则
RewriteRule ^index\.php(.*)$ /$1 [R=301,QSA,L]
在我们将 Apache 升级到 2.4.6 之前效果很好,从那时起它只重定向了 www.example.com/index.phpurl 之类的链接,而不是 www.example.com/index.php/url、index.php/url似乎没有包含在此表达式中。
有人知道解决办法吗?
【问题讨论】:
我发现 Apache 2.4.6 bz.apache.org/bugzilla/show_bug.cgi?id=53929 中有一个错误。我现在无法更改 apache 版本,所以我需要一个在 .htaccess 中部署的解决方案来解决这个问题。 【参考方案1】:试试这个
RewriteEngine On
RewriteBase /myproject/
RewriteCond %REQUEST_FILENAME -s [OR]
RewriteCond %REQUEST_FILENAME -l [OR]
RewriteCond %REQUEST_FILENAME -d
RewriteRule ^ - [L]
RewriteRule ^(.+)$ index.php/$1 [L]
【讨论】:
OP 想要重定向旧链接。 这并不能帮助我以任何方式重定向链接。正如我所说,该规则在将 Apache 升级到 2.4.6 之前有效,但在那之后就没有了。以上是关于从 zend 框架上 apache 2.4.6 的 url 中删除 index.php的主要内容,如果未能解决你的问题,请参考以下文章
Rackspace 云站点上的 PHP(Zend 框架)代码分析