Laravel 4路由(未找到控制器)

时间:2013-06-23 00:39:28

标签: laravel laravel-4

请帮助,我正在使用Laravel4但是由于某些原因我不能让它在家里的Mac上工作,我在工作中没有问题,要么我缺少明显的东西,要么我的mac设置不同

我遇到的问题是,如果我尝试使用测试控制器,我只能让HomeController工作,我找不到Controller方法。 whooops错误导致找不到控制器方法

REDIRECT_URL    /test
GATEWAY_INTERFACE   CGI/1.1
SERVER_PROTOCOL     HTTP/1.1
REQUEST_METHOD  GET
QUERY_STRING    
REQUEST_URI     /test
SCRIPT_NAME     /index.php
PATH_INFO   /test
PATH_TRANSLATED     redirect

我的路线

Route::controller('test', 'TestController');

和我的测试控制器

class TestController extends BaseController {

    public function getIndex()
    {
       return View::make('test.index');
    }

}

我的htaccess

<IfModule mod_rewrite.c> 
RewriteEngine on 
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>

重写已启用

我错过了明显的吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

我在本地开发环境中遇到过类似情况。部署在我的远程服务器上的Laravel 4应用程序运行正常,但是我无法在本地计算机上运行它。问题是只有应用程序的根文件夹(/ public - Home Controller)可以访问,我的所有路由都没有工作。

问题在于Apache的配置,它不允许加载.htaccess个文件。我的解决方案是为我的站点路径定义一个新的Directory语句,如下所示:

<Directory "/path/to/your/sites">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

您可以将其插入httpd.conf或正在加载的任何配置文件中。如果已存在该路径的定义,则应相应地更新它。在我的例子中,我将上面的代码与虚拟主机定义一起添加到我的httpd-vhosts.conf文件中:

<VirtualHost *:80>
    ServerAdmin your@email.com
    DocumentRoot "/path/to/your/sites/laravel/public"
    ServerName laravel.dev
    ServerAlias www.laravel.dev
</VirtualHost>

最后将此行添加到/etc/hosts

127.0.0.1   laravel.dev

通过这种方式,您可以通过此URI访问您的本地环境:http://laravel.dev