我是LARAVEL框架的新手,我想运行一个只具有查看页面功能的控制器
class TestController extends BaseController {
public function index()
{
return View::make('hai');
}
}
我在routes.php文件中设置路由,如下所示
Route::get('test','TestController@index');
我尝试使用
在mozilla中运行localhost/laravel/public/test
但它显示
Not Found
The requested URL /laravel/public/test was not found on this server.
我的.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>
任何人都请帮帮我。
答案 0 :(得分:10)
我假设你在Ubuntu机器上。要使其工作,首先,通过在终端
中执行以下命令来启用重写模块 sudo a2enmod rewrite
其次,找到&#34; apache2.conf&#34;在您的系统中,我的文件位于
/etc/apache2/apache2.conf
在此文件中,找到以下代码片段:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
更改&#34; AllowOverride无&#34; to&#34; AllowOverride All&#34;。保存文件并通过执行以下命令重新启动Apache服务器
sudo service apache2 restart
这应该可以解决问题。干杯
答案 1 :(得分:0)
前提条件:你知道你有htaccess工作,如果你第一次安装laravel并前往localhost/laravel/public/
,你会看到laravel标志。
路线是:
Route::get('/', function()
{
return View::make('hello');
});
关于您的路线:您不需要在路线中明确说明功能(@index)。 Laravel根据HTTP请求类型有一个默认路径。检查here(在标题资源控制器处理的操作标题下)以获取更多详细信息。
答案 2 :(得分:0)
我只是提到你不修改.htaccess文件。来自http://tisuchi.com/easy-way-handle-routing-laravel/:
静态页面处理
在laravel中处理静态页面是最简单的处理方式之一 路线。打开app / routes.php文件并删除其中的所有内容。 假设我们尝试进入以下页面 - home (example.com),about(example.com/about),contact (example.com/contact)。为此,只需在您的代码中编写以下代码即可 routes.php文件 -
/** * Static page code */ Route::get('/', function(){ return View::make('home'); }); # For example.com/about Route::get('about', function(){ return View::make('about'); }); /** * Naming Route for static Page */ # For example.com/contact Route::get('contatct', array('as' => 'contact', function(){ return View::make('contact'); }));
如果您是Laravel的新手,强烈建议您查看以下2个教程 -
当然,不要忘记查看laravel.com的官方页面。 希望,它会对你有用。
玩得开心......