【问题标题】:Issue in Kohana 2.3.4 (2.4) with routing and 'Index' controllerKohana 2.3.4 (2.4) 中带有路由和“索引”控制器的问题
【发布时间】:2009-11-25 22:17:32
【问题描述】:

我有:Kohana 2.3.4 的全新干净副本(也尝试过 2.4 RC1),一个名为“index”的控制器,在带有 Apache 2.2.9 的 Debian 上。

当我输入http://localhost/kohana/index/index 之类的地址时,我希望执行控制器“索引”和“索引”操作。它适用于 Windows localhost,适用于共享主机。但不在我的 Debian 服务器上。

我已经调试并发现 $_SERVER['PATH_INFO'] 不正确。它省略了 URI 中的第一个“索引”,因此我可以通过转到“索引/索引/索引”来访问“索引/索引”。这就是我想要解决的问题。

有人知道怎么解决吗?

【问题讨论】:

  • 看来小花没有任何影响力。我认为这是 Apache 的配置不正确
  • 我同意 charnad,尝试不同版本的 apache,可能是特定于版本的问题

标签: php apache2 kohana


【解决方案1】:

我猜它实际上出现在您的 .htaccess 文件或 Apache 配置中,而不是专门出现在 Kohana 中。首先确保将Kohana自带的example.htaccess文件重命名为.htaccess,可能需要重启Apache。

如果您使用 .htaccess 隐藏路径的 index.php 部分,请检查 RewriteBase 设置是什么:

RewriteBase /kohana/

如果您将它安装在 Web 服务器的根目录中(如在生产环境中,或为 localhost 使用单独的端口),则应将其更改为:

RewriteBase /

顺便说一句,这是我个人在设置新站点和开发环境时最常见的错误。 CodeIgniter 和其他相关的 PHP 框架也是如此。

你在 Debian 服务器上安装的 Apache 真的有 mod_rewrite 吗?最好确认一下。 Here's one way to do that.

进一步诊断是否是 Kohana 或 Apache 的错误包括添加回路径的 index.php 部分。在您的情况下,请尝试http://localhost/kohana/index.php/index。最后,我必须同意上述 sarfraz 的观点,即将控制器命名为“索引”只是在自找麻烦。我自己的约定是称它为“家”并相应地编辑默认路线。

【讨论】:

  • 我不认为这是真的
【解决方案2】:

原来是 mod_negotitaion。它该死的 mod 将我的 /index/index 重写为 /index.php/index,因为它认为我错过了 .php

因此,遇到此问题的任何人,只需禁用 mod_negotiation 并玩得开心

【讨论】:

    猜你喜欢
    • 2011-05-09
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多