fuelPHP:无法直接访问我的控制器

时间:2012-10-23 08:04:25

标签: php fuelphp fuelphp-routing

我正在尝试学习fuelPHP,我来自CI背景。我正在使用本教程,以便我可以熟悉这一点。

http://net.tutsplus.com/tutorials/php/getting-started-with-the-fuel-php-framework/

我的问题出在第2步。当我访问我的简单控制器时

http://localhost/fuel/public/index.php/hello 

我收到404错误。

* fuel是我本地主机上新安装的fuelPHP的目录。

当我将此设置为我的默认路由时,控制器可以正常工作。

新版本中有什么变化促使了这个吗?

这是/ public /文件夹中的.htaccess。

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

感谢。

1 个答案:

答案 0 :(得分:1)

通过像这样安装FuelPHP,你自己变得非常复杂。

它的设计方式是'public'文件夹是你的webservers文档根目录,这意味着所有的资料都在你的文档根目录之外,.htaccess直接在你的文档根目录中。

不仅要将其完全安装在文档根目录中,还要安装在该文档根目录的子文件夹中,您需要修改重写规则。首先添加

RewriteBase /fuel/public

公开场合,看看是否有帮助。此外,此.htaccess是为“标准”apache类型安装而制作的。如果你运行其他任何东西,你可能需要一个不同的.htaccess。例如,如果你使用fcgi,从1.4 / develop repo获取.htaccess,它对你的web服务器类型更具容错能力。

最后评论:您不应将localhost用作主机名。这是许多RFC中的非法名称,其中一个是记录cookie使用的名称。如果您使用“localhost”,您将遇到与某些浏览器(版本)的各种会话问题。相反,设置虚拟主机(无论如何都是一个更好的解决方案,然后使用子文件夹),并使用类似“mymachine.local”的主机名。