Php Slim 4-作为查询参数的基本路径
我有一个Slim 4应用程序正在运行,并将一些重复的url参数设置为基本路径,以便在url生成中不显示此参数 请求流:Php Slim 4-作为查询参数的基本路径,php,slim,slim-4,Php,Slim,Slim 4,我有一个Slim 4应用程序正在运行,并将一些重复的url参数设置为基本路径,以便在url生成中不显示此参数 请求流: 调用http:demo.xyz?p1=a-->重写到http://slim.app/url/demo.xyz?p1=a通过Varnish代理 调用http://slim.app/url/demo.xyz?p1=a直接 这两个电话都需要工作 在中间件内部,我将/url/demo.xyz设置为基本路径,以便生成的url是http://demo.xyz?p1=a 这方面的问题是:
http:demo.xyz?p1=a
-->重写到http://slim.app/url/demo.xyz?p1=a
通过Varnish代理http://slim.app/url/demo.xyz?p1=a
直接/url/demo.xyz
设置为基本路径,以便生成的url是http://demo.xyz?p1=a
这方面的问题是:
无法将基本路径识别为要传递参数的内容,因此routes.php
不匹配url/abc
- 我仍然需要有
param的值才能在Slim应用程序中获取一些东西url
- 我的路由需要匹配此结构才能与两个请求流一起工作
$app->group('/url/{url}',函数(RouteCollectorProxy$group){
$group->get('[/[/city/{city}]]',IndexAction::class)->setName('home');
//...
});
有什么办法让它工作吗
这与问题有关。在中间件中,可以使用
Request::getUri()
方法获取整个uri。然后,如果与第一个url格式“http:demo.xyz?p1=a”匹配,则执行:
如果与“”匹配,则执行继续所需的操作
return $response
->withHeader('Location', 'https://www.example.com')
->withStatus(302);