为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Laravel 中使用具有不同页面和路由的多个域?

如何在 Laravel 中使用具有不同页面和路由的多个域?

PHP
慕后森 2023-10-15 15:20:05
我已经有了答案,我想把解决方案分享给有需要的人。如何在 Laravel 中使用具有不同页面和路由的多个域?
查看完整描述

1 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

我花了很多时间寻找解决方案,但没有具体的,总是代码复杂而混乱,最后我用干净的代码开发了一个实用的解决方案。


1 - 首先,需要将 laravel 集中在一个域中,然后您必须将其他域指向主域,您可以访问您的 dns 管理器并为此使用 CNAME 记录。


2 - 在 Laravel 中,您必须在主页上创建一个控制器,其中包含以下内容,替换必要的内容:


/**

 * Display a listing of the resource.

 *

 * @return \Illuminate\Http\Response

 */

public function index(Request $request)

{

    $origin = array("mydomain.com", "mydomain2.com");

    $domain = parse_url(request()->root())['host'];


    if (in_array($domain, $origin)) {

        if ($domain === 'mydomain.com') {

            return view('myview'));

        } 

        if ($domain === 'mydomain2.com') {

            return view('myview2'));

        } 

    } else{ 

        return view('unauthorized');

    } 

}

3 - 最后(可选),创建一个包含只能由该域访问的 url 的路由,执行以下操作:


Route::group(array('domain' => 'mydomain.com'), function () {

    /* routes here */

    Route::get('/', 'YouController@index');

});


Route::group(array('domain' => 'mydomain2.com'), function () {

    /* routes here */

    Route::get('/', 'YouController@index');

});

您必须将 mydomain.com 和 mydomain2.com 更改为您想要的域,否则您必须将未经授权的视图替换为有效视图,这是当域未列出时会出现的内容,如果您愿意,您也可以执行 o 服务器什么也没显示。



查看完整回答
反对 回复 2023-10-15
  • 1 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信