【发布时间】:2021-04-11 07:51:43
【问题描述】:
我目前正在尝试在站点的子目录中安装一个 Laravel 应用程序,使用 nginx 将任何流量引导到该应用程序。
我已按照以下 Stackoverflow 问题中的建议进行操作,并且效果很好 Config nginx for Laravel In a subfolder
但是,当使用此方法时,它无需将子目录放在 Laravel 应用程序路由中。
一个例子。
假设我使用以下 nginx 条目将所有对 https://example.com/shop 的请求指向 /shop 子目录...
location /shop {
alias /var/www/shop/public;
try_files $uri $uri/ @shop;
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
location @shop {
rewrite /shop/(.*)$ /shop/index.php last;
}
如上所述,这可行,但应用中商店“主页”的路径实际上是
Route::get('/', ShopController::class)->name('shop.home');
虽然我需要它
Route::get('/shop', ShopController::class)->name('shop.home');
由于它在包中,我无法控制所有路由等,还有其他各种原因说明这对我来说更可取。
有没有办法调整上面的 nginx 条目来实现这一点?我尝试了很多东西,但似乎无法让它发挥作用。
提前致谢。
【问题讨论】:
-
Doe 的子域可以吗?我发布了一些示例,您可以尝试...但子域 shop.website.com 可能会解决我们所有的问题 :)