ThinkPHP5多模板配置二級域名


現在很多項目都有PC端和移動端,PC和移動端都分別在不同模塊,而“www”二級域名是直接訪問PC端(index模塊),如果想要訪問移動端“www.域名.com/mobile”,這樣域名就太長了,下面我教大家一個方法縮短域名。

 

准備

ThinkPHP支持完整域名、子域名和IP部署的路由和綁定功能,同時還可以起到簡化URL的作用。

要啟用域名部署路由功能,首先需要在config.php開啟:

// 域名部署
'url_domain_deploy'      => true,

定義域名部署規則支持兩種方式:動態注冊和配置定義

動態注冊

可以在應用的公共文件或者application\route.php動態注冊域名部署規則,例如:

<?php
use think\Route; Route::domain('m','mobile');

這樣訪問“m.域名.com”就可以直接訪問mobile模板

支持綁定的時候添加默認參數,例如:

// m子域名綁定到mobile模塊
Route::domain('m','mobile?var=thinkphp');

除了綁定到模塊之外,還隱式傳入了一個$_GET['var'] = 'thinkphp' 變量。

支持直接綁定到控制器,例如:

// m子域名綁定到mobile模塊的index控制器
Route::domain('m','mobile/index');

如果你的域名后綴比較特殊,例如是com.cn或者net.cn 之類的域名,需要在config.php配置:

'url_domain_root'=>'thinkphp.com.cn'

配置定義方式

除了動態注冊之外,還支持直接在application\route.php(路由配置文件)中定義域名部署規則,例如:

<?php
use think\Route;
Route::domain('mo','mo');
return [
    //域名綁定到模塊
    '__domain__'  => [
        'api'   => 'api',
        'm'   => 'mobile',
        'www'   => 'index',
    ],
];

注意: 域名綁定到模塊后,"www.域名.com"他會默認加上index模塊,如果訪問“www.域名.com/index”哪這個index不是模塊而是控制器名稱(因為默認加上index模塊)

 

 

綁定路由規則

可以把域名綁定到一系列指定的路由規則,例如:

Route::domain('blog',[
    // 動態注冊域名的路由規則
    ':id' => ['blog/read',['method'=>'GET'],['id'=>'\d+']],
    ':name'=>'blog/read',
]);

如果使用配置文件配置的話,可以按照下面的方式:

return [
    '__domain__'=>[
        'blog'      => [
            // 動態注冊域名的路由規則
            ':id' => ['blog/read',['method'=>'GET'],['id'=>'\d+']],
            ':name'=>'blog/read',
        ],
    ],
    // 下面是其它的路由規則定義
]






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM