在Laravel 5.1部署中出现404错误

时间:2015-07-29 07:16:06

标签: php laravel-5

这是我的第一个Laravel部署。我部署到我的测试服务器(Ubuntu Server),除了默认页面外,我在所有页面上都获得了404。当我更改默认路由时,显示当前的默认页面,其他每个页面都返回404.这是我的部署指南:Uploading Laravel Project onto Web Server。我在链接上使用了第二个答案作为我的向导。 这是我的路线,

Route::get('dashboard','AdminController@index');
Route::get('/','AdminController@index');

但是,

Route::get('users/roles','RolesController@index');
Route::post('addrole','RolesController@store');

并且其他所有路线都失败了,返回404。 这是我的.htaccess

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

    RewriteEngine On
    RewriteBase /
    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index/.php [L]
</IfModule>

运行php artisan serve

时,所有这些都在我的本地主机上工作

我也在我的localhost上做了一个服务器场景,我的意思是重新构建文件夹以配合我的部署指南,我仍然有同样的事情 -

  

未找到找不到请求的网址/ tezza / public / auth / login   这个服务器。

有趣的是,在我以这种方式重新构建文件夹之前它才有效。

1 个答案:

答案 0 :(得分:0)

我不确定您的服务器设置,但以下内容对我有用。

在我的站点根文件夹中(在我的服务器上它被称为默认)我有这个htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

在我的Laravel“public”文件夹根目录中,我有另一个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>

也许这会有所帮助?