【发布时间】:2017-03-08 10:38:00
【问题描述】:
在工作中,我们有一个带有临时域的临时服务器,例如https://staging.example.com。我们最近决定在新服务器上从 Apache 切换到 NGINX,但我们的 Laravel 路由存在问题。
我们所有的 laravel 应用程序都位于临时服务器上的子目录中,就像这样。
我已尝试按照Laravel docs 中的指定配置 NGINX conf 文件,但在访问任何 2 级路由时得到 404,即https://staging.example.com/app1/public/a/b
使用类似下面的配置,我可以访问应用程序中的所有路由。
location @laravel {
rewrite /app1/public/(.*)$ /app1/public/index.php?$1;
}
location / {
try_files $uri $uri/ @laravel;
}
但是,我们在此服务器上托管了许多应用程序,我们不希望每次向服务器添加应用程序时都必须更新 NGINX conf 文件。
有没有办法构造一个重写以应用于任何子目录并保持 Laravel 的路由系统正常工作?
注意:我也尝试过这种重写 rewrite (.*)/(.*)$ $1/index.php?$2,但这不适用于 2 级路由。
【问题讨论】: