Laravel正在"监听"URL中的任何位置的index.php字符串

MaG*_*tas 25 php url laravel laravel-5

我有一个Laravel 5项目,其中包含路由设置以及自定义404页面(主要用于丢失/不正确的"页面").

所以基本上如果我打开任何现有的路线,我得到正确的输出,每个其他的URL显示404:

  • project.com/login - 很好,登录页面

  • project.com/ghdkfgl - 404

这看起来很清楚,似乎按预期工作.因此,我在斜杠后添加的任何内容都会打开实际的现有页面或404页面.

除非我在URL中的任何位置放置'index.php'.在这种情况下,Laravel正在执行请求,原因如下:

  • project.com/jhdfkds/index.php/login - 打开登录页面(CSS和其他资源由于路径而消失,但很明显).

  • project.com/kfhjdsg/index.php/fkdhsg - 打开404(但CSS和其他资源也未加载).

我确信这两个都应该打开404因为我的项目中没有这样的路线.

我还在Laravel文档网站上检查了相同的行为(我假设它建立在Laravel上).

可能是什么导致了这个?怎么解决这个问题?

为什么Laravel甚至会考虑URL中间的'index.php'?

这与.htaccess文件有什么关系吗?(虽然我没有编辑)

luk*_*ter 15

问题出在Symfony Request类中,以及它如何确定基本URL.基本上它假定如果您有一个请求aaa/index.php,那么您当前运行的脚本(命名index.php)在目录aaaaaa/index.php作为基本URL.
稍后它将从实际请求URI中删除.

我使用当前正在审核的拉取请求修复了此不需要的行为.我会在合并后立即更新这篇文章.