单个域上多个 laravel 应用程序的虚拟主机别名

Posted

技术标签:

【中文标题】单个域上多个 laravel 应用程序的虚拟主机别名【英文标题】:virtual host alias for multiple laravel applications on single domain 【发布时间】:2017-09-18 15:47:20 【问题描述】:

我希望我的域根据 url 运行两个单独的 laravel 应用程序

例如

domain.com/home/sites/1

domain.com/account/home/sites/2

我有这个工作,但是在站点 2 上运行的 laravel 实例认为 domain.com/account 是主页。

当我转到 domain.com/account 时,我看到了站点 2 的主页 - 而不是 /account 的设置路线。

这是我的虚拟主机文件

<VirtualHost *:443>
    ServerName domain.com
    ServerAdmin webmaster@localhost
    UseCanonicalName Off
    DocumentRoot /home/sites/1/public/
    DirectoryIndex index.php

    <Directory />
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    <Directory /home/sites/1/public/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    Alias /account/ /home/sites/2/public/

    <Directory /home/sites/2/public/>
         Require all granted
         Options Indexes Includes FollowSymLinks MultiViews
         AllowOverride All
         Order allow,deny
         Allow from all
         RewriteEngine On
     </Directory>
</VirtualHost>

【问题讨论】:

对于具有相同文档根目录的不同域,最好使用 Laravel 路由器。 你有没有得到这个工作? 【参考方案1】:

将此添加到您的自定义 apache 虚拟主机文件中

<VirtualHost *:80>

        ServerAdmin xx@xxx.com
        ServerName xxx.com
        DocumentRoot /path/to/site1/public

        Alias /account /path/to/site2/public

        <Directory /path/to/site1/>
           AllowOverride All
        </Directory>

        ErrorLog $APACHE_LOG_DIR/error.log
        CustomLog $APACHE_LOG_DIR/access.log combined

</VirtualHost>

现在您需要更改别名的公用文件夹的.htaccess文件 -

在 .htacess 文件中的 RewriteEngine On 之后添加 RewriteBase /directory_name_of_site2/

您可以添加任意数量的别名,只需记住修改每个项目的 .htaceess 文件

【讨论】:

以上是关于单个域上多个 laravel 应用程序的虚拟主机别名的主要内容,如果未能解决你的问题,请参考以下文章

同一域上的多个 Laravel 5 项目

如何从Angular向同一域上的Laravel API发送请求?

如何在同一个域上运行多个 Laravel 实例?

任何域上的 Laravel 5 子域路由

laravel 和 wordpress 在同一个域上(子文件夹中的 laravel)

使用单个laravel实例的多个项目