Laravel routes not found on nginx

2019-07-15 04:39发布

when I try to access my test app, just the index route works: malte.italoborg.es

If I try to access another route, like: malte.italoborg.es/admin

I got 404 error.

My nginx app file:

server {
    listen 80;
    server_name malte.italoborg.es;
    root /home/italo/www/malte.italoborg.es/public;

    charset utf-8;

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log off;
    error_log  /home/log/nginx/malte.italoborg.es-error.log error;
    error_page 404 /index.php;
    sendfile off;

    # Point index to the Laravel front controller.
    index index.php;

    location / {
            try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        #deny all;
    }
}

I tried this solution in an another link in StackOverflow, but doesn't worked for me.

All Laravel routes “not found” on nginx

I'm using nginx in Digital Ocean.

::UPDATE::

My routes.php

<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/

Route::get('/',
    ['as' => 'site.welcome.index', 'uses' => 'Site\WelcomeController@index']
);

Route::group(['prefix' => 'admin'], function () {

    // Login
    Route::get('login',
        ['as' => 'admin.auth.login', 'uses' => 'Admin\Auth\AuthController@getLogin']
    );
    Route::post('login',
        ['as' => 'admin.auth.login', 'uses' => 'Admin\Auth\AuthController@postLogin']
    );
    Route::get('logout',
        ['as' => 'admin.auth.logout', 'uses' => 'Admin\Auth\AuthController@getLogout']
    );

    // Password
    Route::get('password/email',
        ['as' => 'admin.password.email', 'uses' => 'Admin\Auth\PasswordController@getEmail']
    );
    Route::post('password/email',
        ['as' => 'admin.password.email', 'uses' => 'Admin\Auth\PasswordController@postEmail']
    );

    // Password reset
    Route::get('password/reset/{token}',
        ['as' => 'admin.password.reset', 'uses' => 'Admin\Auth\PasswordController@getReset']
    );
    Route::post('password/reset',
        ['as' => 'admin.password.reset', 'uses' => 'Admin\Auth\PasswordController@postReset']
    );

    Route::group(['middleware' => 'auth'], function () {

        // Home
        Route::get('/', ['as' => 'admin.home.index', 'uses' => 'Admin\HomeController@index']);

        // My Account
        Route::get('profile',
            ['as' => 'admin.profile.edit', 'uses' => 'Admin\ProfileController@edit']
        );

        Route::put('profile',
            ['as' => 'admin.profile.update', 'uses' => 'Admin\ProfileController@update']
        );

        // Nail polish
        Route::resource('polishes', 'Admin\NailPolishController');

        // Brands
        Route::resource('brands', 'Admin\BrandController');

        // Types
        Route::resource('types', 'Admin\TypeController');
    });
});

3条回答
Fickle 薄情
2楼-- · 2019-07-15 05:01

Fix for Laravel 5.1:
$ vi /etc/nginx/sites-available/default

Comment out:
# try_files $uri $uri/ =404;

Add:
try_files $uri $uri/ /index.php;

查看更多
贼婆χ
3楼-- · 2019-07-15 05:02

Please try changing this

location / {
    try_files $uri $uri/ /index.php;
}

to this

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

And also remove this line:

try_files $uri /index.php =404;
查看更多
戒情不戒烟
4楼-- · 2019-07-15 05:03

For the lumen and laravel this solved my problem:

I've change the document root on nginx to root of my project:

root /usr/you/laravelinstall/public;
查看更多
登录 后发表回答