我正在使用Laravel应用程序作为API处理程序的遗留PHP应用程序。遗留应用程序和Laravel应用程序都位于同一个域中,并且位于同一服务器上。 Laravel与旧版应用程序中的子文件夹进行符号链接。网络服务器是Apache。
我让Laravel设置了返回PDF的端点。 PDF由Legacy应用程序生成,并根据业务规则(客户ID,位置等)进行命名和放置在目录中。即/22/435123/435123-22.pdf其中22是位置,435123是客户ID。
如果我将其作为URL输入,则端点可以正常工作。 要从旧版应用程序访问它,我使用.htaccess重写规则来重写旧版路由/ URL。重写规则测试站点显示URL已正确重写。 Laravel路线(使用上面的例子)是:/api/22/435123?filename=435123-22.pdf
当我从遗留应用程序中点击路线时,Laravel将路由到Laravel中的index.php并附加文件名查询。 index.php?filename = 435123-22.pdf
这是重写($ 2与api无关)
dog.jar
有什么想法吗?我可以提供的任何其他信息吗?
修改
在Laravel方面,我添加了日志记录中间件来记录命中API的请求。 Laravel将请求URI记录为[Laravel Root] /index.php?[遗留应用程序发送的查询字符串]
答案 0 :(得分:0)
解决方案是重写完整路径
即https://%{HTTP_HOST}/laravel/api/$1/$3?filename=$4