2012-10-23 28 views
0

我想学习fuelPHP,并且我来自CI背景。我正在使用本教程,以便我可以熟悉这一点。fuelPHP:无法直接访问我的控制器

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> 

谢谢。

+0

你有.htaccess设置?如果是的话,你可以发布代码? –

+0

@ BenSwinburne这是全新安装。 On/fuel /没有.htaccess/fuel/fuel /具有.htaccess,它只包含否认所有内容。但是,真的,默认的控制器... welcome.php能够在这里没有任何问题的访问。 –

+0

在/ public /中应该有一个作为默认安装的一部分,但取决于您的apache/php配置,您可能需要对其进行调整。欢迎控制器工作的原因是路由加载了正确的页面。这是将/ hello位发送给index.php的.htaccess。 –

回答

1

通过像这样安装FuelPHP,您正在使自己变得非常复杂。

它的设计方式是'公共'文件夹是您的web服务器文档根目录,这意味着所有的燃料都在您的文档根目录之外,而.htaccess直接位于您的文档根目录中。

通过不仅将它完全安装在您的文档根目录中,而且还在该文档根目录的子文件夹中,您需要修改您的重写规则。开始加入

RewriteBase /fuel/public 

到公共场合,看看是否有帮助。另外,这个.htaccess是为“标准”apache类型安装而制作的。如果你运行其他任何你可能需要一个不同的.htaccess。例如,如果使用fcgi,从1.4/develop回购获得.htaccess,它对您的Web服务器类型的容错性更强。

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

相关问题