Laravel应用程序不正确地路由mod
我正在使用Laravel应用程序作为API处理程序的遗留PHP应用程序。 遗留应用程序和Laravel应用程序都在同一个域中,并位于同一台服务器上。 Laravel从传统应用程序中的子文件夹符号链接。 网络服务器是Apache。
我有Laravel设置了返回PDFs的端点。 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?文件名= 435123-22.pdf
这里是重写($ 2与api无关) RewriteRule ^files/([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /laravel/api/$1/$3?filename=$4
有任何想法吗? 我可以提供的任何其他信息?
编辑
在Laravel方面,我添加了日志记录中间件来记录API的请求。 Laravel将请求URI记录为[Laravel Root] /index.php?[从旧应用发送的查询字符串]
解决方案是重写到完整路径。
即https://%{HTTP_HOST}/laravel/api/$1/$3?filename=$4