我正在努力让Laravel 4.2在我的运行Ubuntu 14.04和PHP 5.5的Digital Ocean服务器上运行。我可以看到显示Laravel标志的屏幕,上面写着“你已经到了”。我很累,而且已经很晚了,但是我感到非常沮丧,今晚我真的必须让这个工作。
我的路线如下:
<?php
Route::get('/', function()
{
return View::make('hello');
});
Route::any('monkey', function()
{
return View::make('monkey');
});
Route::resource('search', 'SearchController');
?>
我不能说“你好”或“猴子”。是什么给了???
我已经进入apache.conf并将“AllowOverride”更改为“All”并重新启动Apache服务。
我的laravel.log文件显示了这个:
production.ERROR: exception 'Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException'
更新 我刚刚尝试添加以下路线而没有任何变化......
<?php
Route::any('test', function()
{
return 'Test This!!!';
});
?>
更新2:
这是我公开的.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 :(得分:4)
您需要启用mod_rewrite,因为默认情况下它通常不会启用。
在终端中运行以下命令以启用它。
a2enmod rewrite
然后重启Apache:
service apache2 restart
答案 1 :(得分:1)
您必须在.htaccess
目录中创建app/public/
文件:
<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>