gpt4 book ai didi

php - Laravel 路由不起作用,只有根路由起作用

转载 作者:行者123 更新时间:2023-12-04 18:57:33 25 4
gpt4 key购买 nike

我已经在 EC2 实例上克隆了我的 laravel 项目(类型 ubuntu 16.04)
之后我运行了composer install命令

我改变了/etc/nginx/site-available/default根据我的本地机器进行配置,即

server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html/myproject/public;

charset utf-8;

# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

server_name myServerIpAddress;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}


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

现在,当我打开我的服务器 IP 地址时,它会显示我的 /路线正确,但当我试图打开 /login/register它显示我找不到 404

我的 nginx 版本是 (1.10.0)
我的 php 版本是 (7.0.18)

我还检查了日志文件,但没有显示任何错误

谢谢你

最佳答案

使用您当前的配置,应请求 /login , nginx 会尝试查看是否有一个名为 /var/www/html/myproject/public/login 的文件存在,那么如果一个名为 /var/www/html/myproject/public/login/ 的文件夹如果它们都不存在,则返回错误 404。

这不是您所期望的,因为您没有创建名为 login 的文件。 ,你刚刚在 Laravel 的路由器中创建了一个路由。因此,您必须以调用 index.php 的方式配置 nginx。每次向该虚拟主机请求时,公共(public)目录的文件,然后框架将能够将请求所针对的 URL 与您注册的路由进行比较。

As documented on Laravel's website ,您应该编辑您的配置以添加以下位置 block ,以便将所有请求(静态资源的请求除外)重定向到 index.php ,以原始查询为参数:

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

关于php - Laravel 路由不起作用,只有根路由起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44266704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com