Laravel routes not found after nginx isntall

After I changed ICG to nginx, all routes except the index page do not work.

Laravel Configuration:

#/etc/nginx/sites-enabled/laravel server { listen 80; root /var/www/home; index index.php; server_name 192.168.178.71; access_log /var/www/home/storage/app/logs/laravel-nginx-access.log; error_log /var/www/home/storage/app/logs/laravel-nginx-error.log error; location /home { root /home/public; try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { log_not_found off; access_log off; } # ERROR error_page 404 /index.php; # DENY HTACCESS location ~ /\.ht { deny all; } } 

Default configuration:

 # /etc/nginx/sites-enabled/default server { listen 80 default_server; listen [::]:80 default_server; root /var/www; # Add index.php to the list if you are using PHP index index.php index.html index.htm; server_name 192.168.178.71 localhost; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ index.php?$query_string; autoindex on; # Remove trailing slash to please routing system. if (!-d $request_filename) { rewrite ^/(.+)/$ /$1 permanent; } } location ~ \.php$ { #try_files $uri /index.php =404; try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME document_root$fastcgi_script_name; } location ~ /\.ht { deny all; } } 

my nginx config

 #/etc/nginx/nginx.conf user www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { disable_symlinks off; ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # SSL Settings ## ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } 

What I tried:

 /var/www/home# (home folder is laravel folder) sudo chown -R www-data:www-data * /var/www/home# sudo chown -R root:root * 

also i tried to change

  try_files $uri $uri/ /index.php?$query_string; try_files $uri $uri/ /index.php$is_args$args; try_files $uri $uri/ /index.php; php artisan cache:clear 

I read most questions on google, but nothing helps me.

My phpinfo link

+6
source share
4 answers

This is the correct basic configuration for Laravel and Nginx:

 server { listen 80 default_server; root /var/www/laravel/public/; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php$is_args$args; } # pass the PHP s to FastCGI server listening on /var/run/php5-fpm.sock location ~ \.php$ { try_files $uri /index.php =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 
+13
source

When I sent the parameters by get, I did not recognize them, I just need to activate the following: try_files $ uri $ uri // index.php $ is_args $ args;

 location / { try_files $uri $uri/ /index.php$is_args$args; } 
+2
source

I had the same problem, but updating the default configuration made it work.

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

Lets me know if this works or not.
sudo service nginx restart after configuration change.

+1
source

I had the same problem after updating multiple nginx lines working fine.

This is for windows (changing the root folder of your file system)

1.root html / laravel; #Update Here - add the name of the project folder after html

2.try_files $ uri $ uri // index.php $ is_args $ args; #Update Here - Add this for 404 not found error

 server { listen 80; # IPv4 server_name localhost; ## Parametrization using hostname of access and log filenames. access_log logs/localhost_access.log; error_log logs/localhost_error.log; ## Root and index files. root html/laravel; #Update Here - add project folder name after html index index.php index.html index.htm; ## If no favicon exists return a 204 (no content error). location = /favicon.ico { try_files $uri =204; log_not_found off; access_log off; } ## Don't log robots.txt requests. location = /robots.txt { allow all; log_not_found off; access_log off; } ## Try the requested URI as files before handling it to PHP. location / { try_files $uri $uri/ /index.php$is_args$args; #Update Here - Add this for 404 not found error ## Regular PHP processing. location ~ \.php$ { try_files $uri =404; fastcgi_pass php_processes; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } ## Static files location ~* \.(?:css|gif|htc|ico|js|jpe?g|png|swf)$ { expires max; log_not_found off; ## No need to bleed constant updates. Send the all shebang in one ## fell swoop. tcp_nodelay off; ## Set the OS file cache. open_file_cache max=1000 inactive=120s; open_file_cache_valid 45s; open_file_cache_min_uses 2; open_file_cache_errors off; } ## Keep a tab on the 'big' static files. location ~* ^.+\.(?:ogg|pdf|pptx?)$ { expires 30d; ## No need to bleed constant updates. Send the all shebang in one ## fell swoop. tcp_nodelay off; } } # / location } 
+1
source

All Articles