【问题标题】:Apache Alias multiple sites on vpsApache Alias vps 上的多个站点
【发布时间】:2018-06-23 16:14:57
【问题描述】:

我在同一个 VPS 上运行多个 Laravel 站点(基于 IP,无域)。 这一切都通过在 Apache conf 中使用它来工作:

<VirtualHost *:80>
        Alias /site1 "/var/www/site1/public"
        <Directory "/var/www/site1/public">
                Allowoverride All
        </Directory>
        Alias /site2 "/var/www/site2/public"
        <Directory "/var/www/site2/public">
                Allowoverride All
        </Directory>

然后每个站点都有自己的vhost.conf文件如:

site1.conf:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/site1/public/
        ServerName site1
</VirtualHost>

这很完美,因此当我转到 [IP 地址]/site1 和 [IP 地址]/site2 时,我会被 Apache 正确重定向。

主要问题是,当我将代码从本地计算机移动到 VPS 时,所有绝对链接(即以斜杠 / 开头的 css 和 js)都指向服务器的根目录而不是站点的根目录。

有没有办法通过 .htaccess 或通过 Apache 配置让每个站点都有自己的相对根?我已经尝试过基本标签,但它还不够好,我想我可能缺少 Apache 专业知识来知道如何正确地做到这一点。我试过 Location 和 LocationMatch 没有成功。

我试图避免遍历每个 url 引用并添加 siteX/css、siteX/js 等。

谢谢!

【问题讨论】:

    标签: laravel apache


    【解决方案1】:

    设置您的APP_URL 以在您的.env 中包含子目录

    `APP_URL=https://example.com/site1`
    

    现在使用 asset() 助手加载您的资产

    asset('css/site.css');
    

    asset 助手会将以下内容添加到传递给它的字符串参数中:

    http://example.com/site1/assets/css/site.css 
    

    【讨论】:

      猜你喜欢
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多