我的所有路线都找不到404
。如果我访问localhost/mylaravel
,则可以打开Laravel页面,但如果访问localhost/mylaravel/login
,则显示404未找到页面。如果我在/ home上更改路线home并访问它,则找不到404。
我正在使用Laravel Framework 5.6.33
这是我的路线文件:
<?php
Route::get('/', function () {
return view('home/home');
});
Route::get('/login', function () {
return view('login/login');
});
这是我在/etc/nginx/sites-available/default
上的nginx配置
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
charset utf-8;
root /var/www/html/;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location /mylaravel/ {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri $uri/ =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\. {
deny all;
}
location ~* ^.+\.(css|js|jpg|jpeg|gif|png|txt|ico|swf|xml|woff|woff2|ttf|mp3|svg|csv|xls|xlsx|eot|otf)$ {
access_log off;
expires modified +90d;
}
}
答案 0 :(得分:1)
您的错误是在/etc/nginx/sites-available/default
以下行:
root /var/www/html/;
应该是
root /var/www/html/public;
您的webroot应该设置为Laravel项目内的公共目录,因为这是框架的入口点