Laravel路由不起作用

Jis*_*had 1 laravel laravel-routing

我是LARAVEL框架的新手,我想运行一个只具有查看页面功能的控制器

class TestController extends BaseController {

    public function index()
    {
        return View::make('hai');
    }
}
Run Code Online (Sandbox Code Playgroud)

我在routes.php文件中设置路由,如下所示

Route::get('test','TestController@index');
Run Code Online (Sandbox Code Playgroud)

我试着用mozilla运行

localhost/laravel/public/test
Run Code Online (Sandbox Code Playgroud)

但它表明

Not Found
The requested URL /laravel/public/test was not found on this server.
Run Code Online (Sandbox Code Playgroud)

我的.htaccess页面有什么问题吗?

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

任何身体请帮助我.

Iam*_*ale 10

我假设你在Ubuntu机器上.为了使其工作,首先,通过在终端中执行以下命令来启用重写模块

 sudo a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)

其次,在你的系统中找到"apache2.conf"文件,我的位于

/etc/apache2/apache2.conf
Run Code Online (Sandbox Code Playgroud)

在此文件中,找到以下代码片段:

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

将"AllowOverride None"更改为"AllowOverride All".保存文件并通过执行以下命令重新启动Apache服务器

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

这应该可以解决问题.干杯