TP框架中APP_SUB_DOMAIN_DEPLOY什么意思?


'APP_SUB_DOMAIN_DEPLOY' => false, // 是否開啟子域名部署

thinkphp開啟域名部署/子域名部署/泛域名部署/IP訪問部署

 

         ThinkPHP支持模塊(甚至可以包含控制器)的完整域名、子域名和IP部署功能,讓你的模塊變得更加靈活,模塊綁定到域名或者IP后,URL地址中的模塊名稱就可以省略了,所以還可以起到簡化URL的作用。

        無論是子域名還是IP部署,首先要在應用配置文件中開啟APP_SUB_DOMAIN_DEPLOY,這是前提,然后配置域名部署規則APP_SUB_DOMAIN_RULES

             'APP_SUB_DOMAIN_DEPLOY' => 1, // 開啟子域名或者IP配置

             'APP_SUB_DOMAIN_RULES' => array(

            /* 域名部署配置

             *格式1: '子域名或泛域名或IP'=> '模塊名[/控制器名]';

            *格式2: '子域名或泛域名或IP'=>  array('模塊名[/控制器名]','var1=a&var2=b&var3=*');

            */

             )

        域名部署的定義格式21的區別在於格式2可以隱式傳入額外的參數。        域名和IP的解析涉及到DNS解析以及Apache等服務器的配置,這塊不再詳細描述,請參考相關百度資料。

        域名或者IP部署到模塊並不需要設置模塊訪問列表。

 

        完整域名部署

        可以在域名規則中直接定義完整的域名,例如:

             'APP_SUB_DOMAIN_DEPLOY' => 1, // 開啟子域名配置

             'APP_SUB_DOMAIN_RULES' => array(

            'admin.domain1.com' =>  'Admin', // admin.domain1.com域名指向Admin模塊

            'test.domain2.com' =>  'Test', // test.domain2.com域名指向Test模塊

            ),

          

         在域名部署之前的訪問地址: http://www.domain.com/Admin/Index/index   http://www.domain.com/Test/Index/index

          

        域名部署后的訪問地址變成:  http://admin.domain1.com/Index/index   http://test.domain2.com/Index/index

 

         子域名部署

          

         子域名部署包括任意級子域名的支持,在你的應用配置文件中增加如下配置參數:

 

             'APP_SUB_DOMAIN_DEPLOY' => 1, // 開啟子域名配置

             'APP_SUB_DOMAIN_RULES' => array(

            'admin' => 'Admin', //  admin子域名指向Admin模塊

            'test' => 'Test', // test子域名指向Test模塊

             ),

      部署之前的訪問地址:http://www.domain.com/Admin/Index/index

      部署后的訪問地址變成:  http://admin.domain.com/Index/index

      如果你的部署域名后綴是二級后綴,例如 com.cn  net.cn 或者 org.cn 之類的話,為了讓系統更好的識別你的子域名,需要配置APP_DOMAIN_SUFFIX如下:

 

           'APP_DOMAIN_SUFFIX'=>'com.cn'

            APP_DOMAIN_SUFFIX參數不支持設置多個后綴,如果你是一級域名后綴的話則該參數可以無需任何設置。

 

         傳入參數

 

        子域名部署的時候,可以傳入隱式的參數,例如:

 

             'APP_SUB_DOMAIN_DEPLOY' => 1, // 開啟子域名配置

             'APP_SUB_DOMAIN_RULES' => array(

            'admin' =>  array('Admin','var1=1&var2=2'), // admin子域名指向Admin模塊

             ),

 

        訪問 http://admin.domain.com/Index/index 的同時會傳入 $_GET['var1'] =  1  $_GET['var2'] = 2 兩個參數。

 

        控制器綁定

 

         子域名部署還可以支持綁定某個控制器,例如:

 

            'APP_SUB_DOMAIN_DEPLOY' => 1, //  開啟子域名配置

            'APP_SUB_DOMAIN_RULES' => array(

             'test.admin' => 'Admin/Test', // test.admin子域名指向Admin模塊的Test控制器

             ),

 

        部署之前的訪問地址:  http://www.domain.com/Admin/Test/index

 

        部署后的訪問地址:  http://test.admin.domain.com/index

 

         泛域名部署

 

        如果要部署某個模塊到泛域名支持,可以使用:

 

             'APP_SUB_DOMAIN_DEPLOY' => 1, // 開啟子域名配置

             'APP_SUB_DOMAIN_RULES' => array(

            'admin' => 'Admin', //  admin域名指向Admin模塊

            '*' => array('Test','var1=1&var2=*'), //  二級泛域名指向Test模塊

            '*.user' => array('User','status=1&name=*'),  // 三級泛域名指向User模塊

            ),

 

        配置后,我們可以訪問:

 

             http://hello.domain.com/Index/index

 

        訪問Test模塊 並隱式傳入$_GET['var1']  = 1  $_GET['var2'] = 'hello' 兩個參數。

 

        訪問如下地址:

 

             http://think.user.domain.com/Index/index

 

        訪問User模塊,並隱式傳入  $_GET['status'] = 1  $_GET['name'] = 'think' 兩個參數。

 

         在配置傳入參數的時候,如果需要使用當前的泛域名作為參數,可以直接設置為"*"即可。

 

             目前只支持二級域名和三級域名的泛域名部署。

 

         IP訪問部署

 

        可以為某些模塊配置IP訪問規則,例如:

 

             'APP_SUB_DOMAIN_DEPLOY' => 1, // 開啟子域名配置

             'APP_SUB_DOMAIN_RULES' => array(

            '22.56.78.9' => 'Admin',  // 22.56.78.9指向Admin模塊

            ),

 

文章來源:劉俊濤的博客

歡迎關注,有問題一起學習歡迎留言、評論


免責聲明!

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



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