0

我正在使用 Apache 2.2.22 和 PHP 5.3.10 开发一个 PHP 项目,并且遇到了 index 和 index.php 被视为同一个文件的问题。

我有一个 admin/index.php 重定向到 admin/index 以允许我在 .htaccess 中的 mod_rewrite 规则接管并将请求重新路由到自定义框架中。问题是,当浏览器转到 admin/index 时,它会进入无限重定向循环,因为请求被发送到 admin/index.php 重定向到 admin/index

我尝试删除 htaccess 文件以查看导致它的 mod_rewrite 规则是否存在问题并且它没有改变任何东西。它只是无休止地重定向到 admin/index。

我以前从未听说过这种行为,浏览一些谷歌结果并浏览 apache 配置文件并没有显示任何明显的东西。有没有人见过这个并且知道如何解决它?

编辑:下面是 index.php 用来重定向到索引的代码。

<?php
    header("Location: index");
    die();
4

2 回答 2

1

这可能是由于启用了 MultiViews:

MultiViews 的效果如下:如果服务器收到对 /some/dir/foo 的请求,如果 /some/dir 启用了 MultiViews,并且 /some/dir/foo 不存在,则服务器读取目录寻找名为 foo.* 的文件,并有效地伪造了一个类型映射,该类型映射为所有这些文件命名,为它们分配相同的媒体类型和内容编码,如果客户端按名称要求其中一个。然后它选择最符合客户要求的匹配项。

https://httpd.apache.org/docs/2.2/content-negotiation.html#multiviews

尝试添加Options -MultiViews到您的.htaccess

于 2013-01-07T07:42:25.453 回答
0

在 Apache 中启用重写日志并提高日志级别。这样,apache 会一步一步准确地告诉你,什么请求被重写,如何重写,以什么顺序以及为什么重写。

于 2012-06-26T22:11:29.653 回答