这是我的第一个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 这个服务器。
有趣的是,在我以这种方式重新构建文件夹之前它才有效。
答案 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>
也许这会有所帮助?