美文网首页
多域名使用(laravel--RouteServiceProvi

多域名使用(laravel--RouteServiceProvi

作者: 七百年前 | 来源:发表于2019-05-16 14:37 被阅读0次
    <?php
    
    namespace App\Providers;
    
    use Illuminate\Support\Facades\Route;
    use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
    
    class RouteServiceProvider extends ServiceProvider
    {
        /**
         * This namespace is applied to your controller routes.
         *
         * In addition, it is set as the URL generator's root namespace.
         *
         * @var string
         */
        protected $namespace = 'App\Http\Controllers';
    
        /**
         * Define your route model bindings, pattern filters, etc.
         *
         * @return void
         */
        public function boot()
        {
            //
            parent::boot();
        }
    
        /**
         * Define the routes for the application.
         *
         * @return void
         */
        public function map()
        {
            //获取访问地址前缀
            $sld_prefix = explode('.',$_SERVER['HTTP_HOST'])[0];
    
            switch ($sld_prefix) {
                case 'www':
                    $this->mapWebRoutes();
                    break;
                case 'jiexi':
                    $this->mapResolveRoutes();
                    break;
                case 'api':
                    $this->mapApiRoutes();
                    break;
                default:
                    $this->mapWebRoutes();
                    break;
            }
        }
    
        /**
         * Define the "web" routes for the application.
         *
         * These routes all receive session state, CSRF protection, etc.
         *
         * @return void
         */
        protected function mapWebRoutes()
        {
            Route::middleware('web')
                 ->namespace($this->namespace)
                 ->group(base_path('routes/web.php'));
        }
    
        /**
         * Define the "api" routes for the application.
         *
         * These routes are typically stateless.
         *
         * @return void
         */
        protected function mapApiRoutes()
        {
            Route::prefix('api')
                 ->middleware('api')
                 ->namespace($this->namespace)
                 ->group(base_path('routes/api.php'));
        }
    
        
        /**
         * 二级域名解析路由
         */
        protected function mapResolveRoutes()
        {
            Route::middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/resolve/resolve.php'));
        }
    }
    

    相关文章

      网友评论

          本文标题:多域名使用(laravel--RouteServiceProvi

          本文链接:https://www.haomeiwen.com/subject/bgriaqtx.html