我有一个带有LAMP堆栈的Laravel网站,并在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。刀片页面上显示的网址错误。
应该是
http://www.client.com/js/app.js
代替
http://www.client.com/abc/js/app.js
以及从供应商和样式加载的字体,它们使用相对路径并也转换为绝对字体。因此,我们必须通过在Webpack.mix.js中添加选项processCssUrls: false
来解决此问题。
第三个问题是用户注销时的重定向。默认的重定向URL为/
。我知道我们可以更改中间件和控制器中的重定向URL,但是感觉上有很多解决方法。有没有更好的方法来解决这些问题?
再次声明这个问题,如何在带有子文件夹的反向代理后面设置Laravel项目?
http://www.example.com/laravel