Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Filth's avatar

Laravel and NGINX all routes not found

Im having trouble getting a project running on a new server... The home path works fine but any other route results in an NGINX 404 page. Im assuming it has something to do with the conf.

server {
    listen   80;
    server_name  dev.mysite.co.uk;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /var/www/html/dev.mysite.co.uk/public;
        index index.php index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    #proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1:9002;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9002
    #
    location ~ \.php$ {
        root           /var/www/html/dev.mysite.co.uk/public;
        fastcgi_pass   127.0.0.1:9002;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/html/dev.mysite.co.uk/public$fastcgi_script_name;
#   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
       # deny  all;
    }
}

I have tried a couple of things such as:

location @rewrite {
        rewrite ^/(.*)$ /index.php?_url=/$1;
    }

and

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

Neither seem to have helped me.

And yes before someone comments I have a forge/digital ocean setup for most of my projects however that is not an option for this particular one. Any help greatly appreciated.

0 likes
7 replies
Filth's avatar
Filth
OP
Best Answer
Level 4

I have managed to rectify myself:

for anyone experiencing a similar issue try:

    location / {
        root   /var/www/html/dev.mysite.co.uk/public;
        index index.php index.html index.htm;
        try_files $uri $uri/ /index.php$is_args$args;
    }
5 likes
Behinder's avatar

I'm struggling with similar problem and your solution not works for me I gave up

kdbagwe's avatar

@Filth in which file is this above code ? Is this file inside laravel folder directory or on server ?

someidiot's avatar

this seems to work

location ~ /* { rewrite ^/(.*)$ /index.php?_url=/$1; }

1 like

Please or to participate in this conversation.