0

请帮忙,我正在使用 Laravel4,但由于某种原因,我无法让它在家里的 mac 上工作,我在工作中的 mac 没有问题,要么我遗漏了一些明显的东西,要么我的 mac 设置不同。

我遇到的问题是,如果我尝试使用测试控制器,我只能让 HomeController 工作,但找不到控制器方法。whooops 错误给出了 Controller Method Not Found

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>

启用重写

我错过了显而易见的事情吗?

谢谢你的帮助

4

1 回答 1

2

我在本地开发环境中也遇到过类似的情况。部署在我的远程服务器上的 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

于 2013-06-23T01:03:30.320 回答