Laravel app错误地为mod_rewrite重定向请求路由

时间:2017-11-22 19:40:14

标签: laravel mod-rewrite laravel-5

我正在使用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?[遗留应用程序发送的查询字符串]

1 个答案:

答案 0 :(得分:0)

解决方案是重写完整路径 即https://%{HTTP_HOST}/laravel/api/$1/$3?filename=$4