【问题标题】:Set up Laravel project to work with multiple domain names设置 Laravel 项目以使用多个域名
【发布时间】:2019-03-30 13:38:31
【问题描述】:

我已成功配置多个域以指向我的 Laravel 5.1 项目

<Virtualhost *:80>
  VirtualDocumentRoot "/Users/Sites/project/public"
  ServerName app.com
  UseCanonicalName Off
</Virtualhost>

<Virtualhost *:80>
  VirtualDocumentRoot "/Users/Sites/project/public"
  ServerName app2.com
  UseCanonicalName Off
</Virtualhost>

<Virtualhost *:80>
  VirtualDocumentRoot "/Users/Sites/project/public"
  ServerName app3.com
  UseCanonicalName Off
</Virtualhost>

当我去

app.com app2.com app3.com

它们中的任何一个都会指向我的项目并加载登录屏幕。


问题

当我登录时,无论我来自何时,我都会不断将我的用户重定向到

app.com/dashboard


目标

我的目标是,任何来自

的请求
app.com  --> log-in --> redirect to --> app.com/dashobard
app2.com --> log-in --> redirect to --> app2.com/dashobard
app3.com --> log-in --> redirect to --> app3.com/dashobard

这是我可以在应用层或网络服务器上做的事情吗?

【问题讨论】:

  • 为什么不将引用域存储在某个地方,然后让它们重定向回它们的来源?
  • @Adam 我如何在 Laravel 中处理这个问题?我以前从未这样做过。
  • Cookies 或 Session 也许?
  • 如果你把config/app.phpurl改成app2,会重定向到app.com或者app2.com吗?
  • @FelippeDuarte 我还不知道,让我现在做,在这里找到并更新你。

标签: php laravel nginx laravel-5 laravel-5.1


【解决方案1】:

你如何重定向到/dashboard?您是否在LoginController 中设置$redirectTo

通常,您可以使用类似的方式托管多个域。

Route::domain('{domain}')->group(function() {
    Route::get('/dashboard', 'DashboardController@index';
});

然后在控制器中你可以获取域变量并做你需要的返回适当的域。

public function index($domain) 
{
    return "Welcome to '$domain'";
}

【讨论】:

  • 我想我可以做这样的事情。你的语法是 5.1 吗?我是 5.1,目前只对 5.1 感兴趣。
  • 你能存储你如何管理域吗?就像你在重定向之前如何存储它并加载它一样?
  • @kyo 您可以通过多种方式存储它。过去我使用域表来存储可用的域,但最好的取决于项目的需求。您可能想查看Landlord 或类似的软件包。它可以帮助您在同一个数据库/服务器中托管应用程序的多个实例。
猜你喜欢
  • 2017-08-05
  • 2017-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-19
相关资源
最近更新 更多