首页 > 解决方案 > Laravel 网站背后的反向代理和子文件夹?

问题描述

我有一个 Laravel 网站,其中包含 LAMP 堆栈并在 ec2 服务器上托管。我为主机名设置了虚拟主机配置,www.abc.com它工作正常。有一天,客户说他们想用自己的域名访问网站,比如www.client.com/abc. 他们使用反向代理指向我们的 ec2 服务器。我们遇到的第一个问题是虚拟主机出现故障,我们通过添加服务器别名设置来修复它。

ServerAlias www.client.com

url 已正确连接到服务器,第二个问题出现了。由于 url 的子文件夹www.client.com/abc,所有资产路径都失败了。例如,我们有 laravel-mix 生成的字体、样式和 js 路径:

{
    "/js/app.js": "/js/app.js",
    "/css/app.css": "/css/app.css",
    "/js/login.js": "/js/login.js"
}

mix()这些路径是绝对的,如果我们使用辅助函数加载资产,它会变成网站上的 404 。刀片页面上呈现的 url 错误。

这将是

http://www.client.com/js/app.js 

代替

http://www.client.com/abc/js/app.js

以及从供应商和样式加载的字体,它们使用相对路径并且也被转换为绝对路径。所以我们必须通过向 processCssUrls: falsewebpack.mix.js 添加选项来解决这个问题。

第三个问题是用户注销时的重定向。默认重定向 url 是/. 我知道我们可以更改中间件和控制器中的重定向 url,但感觉有很多解决方法。有没有更好的方法来解决这些问题?再次声明问题,如何在带有子文件夹的反向代理后面设置 Laravel 项目?

http://www.example.com/laravel

标签: laravelapache.htaccessreverse-proxylaravel-routing

解决方案


推荐阅读