fuelPHP:Can';我不能直接访问我的控制器

fuelPHP:Can';我不能直接访问我的控制器,php,fuelphp,fuelphp-routing,Php,Fuelphp,Fuelphp Routing,我正在努力学习fuelPHP,我来自CI背景。我使用本教程是为了让自己熟悉这一点 我的问题在第二步。当我访问我的简单控制器时 http://localhost/fuel/public/index.php/hello 我得到一个404错误 *fuel是我的本地主机上新安装的fuelPHP的目录 当我将此设置为默认路由时,控制器工作 在新版本中有什么变化促使了这一点吗 这是我在/public/文件夹上的.htaccess <IfModule mod_rewrite.c> R

我正在努力学习fuelPHP,我来自CI背景。我使用本教程是为了让自己熟悉这一点

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

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>

重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$index.php/$1[L]

谢谢。

像这样安装FuelPHP会让您自己变得非常复杂

它的设计方式是“public”文件夹是您的Web服务器文档根目录,这意味着所有fuel内容都在您的文档根目录之外,而.htaccess直接在您的文档根目录之内

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

RewriteBase /fuel/public
去一个公共场所,看看这是否有帮助。此外,这个.htaccess是为“标准”apache类型的安装而设计的。如果运行其他任何操作,则可能需要不同的.htaccess。例如,如果您使用fcgi,从1.4/developrepo获取.htaccess,那么它对您的Web服务器类型更具容错性


最后一句话:您不应该使用localhost作为主机名。在许多RFC中,这是一个非法名称,其中一个是记录cookies使用情况的名称。如果使用“localhost”,某些浏览器(版本)会出现各种会话问题。相反,请设置虚拟主机(无论如何,这是一个比子文件夹更好的解决方案),并使用类似“mymachine.local”的主机名。

是否设置了.htaccess?如果是这样,你能发布代码吗?@BenSwinburne这是一个新安装。在/fuel/上没有.htaccess/fuel/fuel/has.htaccess,它只包含deny all。但实际上,默认控制器。。。welcome.php可以在这里访问,没有任何问题。默认安装中应该在/public/中有一个,但根据您的apache/php配置,您可能需要调整它。欢迎控制器工作的原因是路由加载了正确的页面。是.htaccess将/hello位发送到index.phphat about
http://localhost/fuel/public/index.php/hello/index
?(同时指定操作名称)。@BenSwinburne我将在/public/文件夹中添加.htaccess。我应该在这里添加什么?