【问题标题】:Host laravel application inside laravel application在 laravel 应用程序中托管 laravel 应用程序
【发布时间】:2020-12-15 02:17:43
【问题描述】:

我正在尝试在 laravel 应用程序中托管 laravel,因为我需要它在同一个域上工作。

假设我的域是 somedomain.com。我已经将它指向一个 laravel 项目的公共目录。现在我需要在同一个域(不是子域)托管另一个 laravel 项目。

我该怎么做?例如somedomain.com/foo/bar 指向另一个使用 nginx 或 apache 的 laravel 项目的公共目录?

编辑

我尝试了flakerimi 的解决方案,现在它只工作了一半。我不确定我做错了什么。

所以我去了位于 mydomain.com 上的 laravel 应用程序的 apache conf 并进行了 Alias /email /dir/to/other/laravel/public 更改,现在确定所有 /email 路由都将转到另一个 laravel 应用程序。我知道这是因为它重定向到email/login

但我在所有 /email/ 路由上看到了 404,但没有看到 laravel 404,即 apache 404 页面。这意味着 apache 将转到另一个 laravel 应用程序,但它无法正确使用那里的路由。

我尝试将 RewriteBase /email 放在另一个 laravel 应用程序的 .htaccess 文件中,但没有成功。有什么想法吗?

【问题讨论】:

    标签: php laravel apache nginx


    【解决方案1】:

    就像你在本地主机做的那样

    laravel1/公共

    laravel2/公共

    在 laravel2 上编辑 htaccess RewriteBase /laravel2

    在阿帕奇上

    服务器名称 some.domain

    ## Path to laravel domain
    DocumentRoot "/path/to/some/domain/laravel1/public"
    <Directory "/path/to/some/domain/laravel1/public">
        AllowOverride All
    </Directory>
    
    ## Path to laravel sub-folder
    Alias /laravel2/ "/sites/laravel2/public"
    <Directory "/sites/laravel2/public">
        AllowOverride All
    </Directory>
    

    同时检查config/session.php 是否有两种安装

    L1

    'cookie' => 'a_unique_name'
    'path' => '/',
    

    L2

    'cookie' => 'a_unique_name_L2'
    'path' => '/laravel2',
    

    【讨论】:

    • conf 文件部分似乎正在工作,/laravel2 路由将转到另一个目录,但 apache 抱怨找不到。我觉得我需要对RewriteBase /laravel2 进行一些更改,也许是 RewriteRule?
    • 在 nginx 中,它的工作方式类似于 rewrite /mail/(.*)$ /mail/index.php?/$1 last;
    • 是的,我的代码是抽象的,现在你必须用你的配置替换它们。
    • 哦,没用,我忘了在 ssl 部分添加允许覆盖。谢谢大佬!
    猜你喜欢
    • 1970-01-01
    • 2014-05-17
    • 2016-08-16
    • 1970-01-01
    • 2020-02-03
    • 2020-10-31
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多