带有symfony路由错误的旧版重定向?

时间:2018-06-22 13:36:23

标签: symfony

我想将所有类似“ /cgi/.*”的请求重定向(301)到我的symfony(3.4)应用程序“ / park”的“停车”页面。

我已经创建了这样一条路线:

old_legacy:
    path: /cgi/{catchall}
    defaults:
        _controller: FrameworkBundle:Redirect:urlRedirect
        path: /park
        permanets: true
    requirements:
        catchall: ".*"

当url为“ /cgi/foo/bar"、"cgi/bar.php?x=2”等时,一切正常,但是当URL结尾为“ index.php”时,该方法不起作用: “ /cgi/index.php”,“ cgi / foo / index.php?x = 2”。

我输入了symfony代码(与SF主机相同),发现我的情况有问题:

要获取baseUrl,HttpFoundation/Request对象会尝试获取php脚本文件名“ SCRIPT_FILENAME”,但是如果 basename 与SCRIPT_NAME相同,它将得到一个!

好,但是SCRIPT_FILENAME是“ /var/www/public/index.php”,而SCRIPT_NAME是“ /cgi/index.php”,并且两个基本名称都是“ index.php”,因此,基本URL用“ /cgi/index.php”,这是错误的,并且基本URL变为“空”。 在故事的结尾,路由器将查找路径“ /”,而不是“ /cgi/index.php”。

其他人有这个问题吗?

0 个答案:

没有答案