1 sunflyer 2017-12-29 14:16:13 +08:00 /ex/am =》这部分叫 uri /ex/am?a=123&b=456 =>问号后面的叫 query_string emm,剩下的应该不用说了 |
![]() | 2 printempw 2017-12-29 14:33:24 +08:00 via Android 你的意思是开启 Nginx URL 重写后 /index.php/ex/am 可以正常访问吗?你的请求确定经过 Laravel 了吗?提示的 Not found 是 Laravel 报的错还是 Nginx 报的错? 稍微看了一下源码(人在外面),Laravel 从 REQUEST_URI 后似乎没有对 index.php 这类 script name 做特殊处理。所以你访问的 /index.php/ex/am 与你定义的路由 /ex/am 应该是**不匹配**的(没验证过,不一定对,手机看源码太痛苦了) https://github.com/laravel/framework/blob/5.5/src/Illuminate/Routing/Matching/UriValidator.php |
![]() | 3 my101du 2017-12-29 14:39:26 +08:00 via Android 未开启重写,末尾加斜杠。会被 nginx 去找匹配的子目录吧。 |
4 kismetX 2017-12-29 14:39:52 +08:00 你的 nginx 配置有问题吧,就单 http://localhost/能访问吗? |
![]() | 5 waibunleung OP @my101du 我没有末尾加斜杠啊 |
![]() | 6 waibunleung OP @kismetX 关于 网址是 localhost 只是用于方便提问的网址书写,我自己配的 nginx 本地网址是“ w w w .lab.com ”,请不要纠结 localhost 的问题 |
![]() | 7 waibunleung OP @printempw 你这么一说,是 nginx 报的 404 错误,请求应该没走 laravel,可是为什么 http://localhost/index.php?/ex/am 或者 http://localhost/index.php?/ex/am 这样的请求没有走 laravel 的路由?已经进入入口文件了,路由却没有解析到 另外,根据以上 nginx 的配置,这个 url: http://localhost/ex/am 重写之后真实访问的 url 是怎样的? |
![]() | 8 waibunleung OP @my101du 我的意思是我没有开启重写,就不会匹配到斜杠那一项吧? |
![]() | 9 waibunleung OP @printempw 开启 Nginx URL 重写后 /index.php/ex/am 确实可以正常访问 |
![]() | 10 medz 2018-01-02 17:58:45 +08:00 @waibunleung 很简单,Laravel 现在是采用 pathinfo 模式的,也就是通过请求路径进行分析路由,你可以开启重写后在 index.php 打印 $_SERVER 你再关闭后打印,你看 `REQUEST_URI` 部分是不一样的。 |
![]() | 11 waibunleung OP @medz 重写前后,我看到的 REQUEST_URI 是一样的。。。。不知道你有没有试验过 |