Laravel网站位于反向代理和子文件夹的后面?

时间:2019-02-19 03:45:15

标签: laravel apache .htaccess reverse-proxy laravel-routing

我有一个带有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

0 个答案:

没有答案