成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Yii2基礎(chǔ)版程序多模塊二級(jí)域名部署方案以及urlManager對(duì)二級(jí)域名絕對(duì)地址的改造方法

Cristic / 2098人閱讀

摘要:二級(jí)域名管理問(wèn)題我們推薦使用來(lái)生成鏈接,而不是人為寫(xiě)這樣,這樣對(duì)以后適配規(guī)則的更改有莫大的好處。

這似乎是個(gè)老生常談的問(wèn)題,那就再談一次吧,本文我們要完成兩件事件。

完成的任務(wù)

將模塊二級(jí)域名化

讓urlManager支持二級(jí)域名

將模塊二級(jí)域名化

我們有這樣的兩個(gè)模塊,分別是 adminwechat ,接下來(lái)想做一件事情

http://wechat.abc.com ===> wechat
http://admin.abc.com ===> admin

廢話少說(shuō),開(kāi)始干貨~?

解析一個(gè)二級(jí)域名

我們以 admin 為例,首先要解析 http://admin.abc.com ,在各種云的域名控制面板。

配置 config/web.php

修改 urlManager 配置項(xiàng)

"urlManager" => [
      "enablePrettyUrl" => true,
      "showScriptName" => false,
      "rules" => [
            "http://admin.abc.com"=>"admin",// 方法一 直接指定
            "http://<_m:(sys|admin|photo)>.abc.com"=>"<_m>" //方法二 多個(gè)二級(jí)域名同時(shí)適配也可以
      ],
],
完了么?

恩,完了,多模塊的二級(jí)域名部署就可以了,阿北知道你一定認(rèn)為此文為標(biāo)題黨,干嘛寫(xiě)這么有深度的標(biāo)題那????

其實(shí)二級(jí)域名的部署并不復(fù)雜,復(fù)雜在部署后所引發(fā)的一些列問(wèn)題,這種問(wèn)題可能是需求上的,可能是技術(shù)上的。

@@nai8@@

接下來(lái)就舉一個(gè)需求上的例子。

二級(jí)域名管理問(wèn)題

我們推薦使用urlManager來(lái)生成鏈接,而不是人為寫(xiě) http://xxx.xxx.xxx/xxx.html 這樣,這樣對(duì)以后適配url規(guī)則的更改有莫大的好處。

但是當(dāng)二級(jí)域名后,我在 admin 模塊下想 生成一個(gè) wechat 模塊的鏈接就變的困難了,相對(duì)url肯定是不行了,但是如果我們用yii提供的 createAbsoluteUrl ,它的domain部分也是使用當(dāng)前域名,無(wú)法指定,因此也行不通,看來(lái)要改造一下。

原則:不改動(dòng)yii源代碼。

新建一個(gè) urlManager 類

在不改變urlManager任何方法的前提下,我們需要擴(kuò)展一下它,所以第一步我們?cè)?appcomponents 下建立一個(gè)叫做 urlManager 的類,這個(gè)類繼承于 yii 的 urlManager 類,并且增加一個(gè)叫做 domainName 的屬性。

namespace appcomponents;

use Yii;
use yiihelpersUrl;
use yiiaseInvalidConfigException;

class UrlManager extends yiiwebUrlManager
{
    public $domainName;

    protected $_hostInfo;

    public function getProperDomain(){
        if ( ! isset($this->domainName) || empty($this->domainName) ) {
            throw new InvalidConfigException("Request requires a domain name to be configured!");
        }

        return $this->domainName;
    }

    public function getHostInfo(){

        if ($this->_hostInfo === null)
        {
            $secure = Yii::$app->getRequest()->getIsSecureConnection();
            $http = $secure ? "https" : "http";

            if (isset($_SERVER["HTTP_HOST"])) {
                $this->_hostInfo = $http . "://" . $this->getProperDomain();
            } elseif (isset($_SERVER["SERVER_NAME"])) {
                $this->_hostInfo = $http . "://" . $this->getProperDomain();
                $port = $secure ? $this->getSecurePort() : $this->getPort();

                if (($port !== 80 && !$secure) || ($port !== 443 && $secure)) {
                    $this->_hostInfo .= ":" . $port;
                }
            }
        }
        return $this->_hostInfo;
    }
}

思路其實(shí)很簡(jiǎn)單,就是我們重寫(xiě)了 getHostInfo 函數(shù),將指定的 domainName 加上去。

配置config/web.php

我們?cè)趙eb.php的 components 中自定義一個(gè)叫做 adminUrlManager的項(xiàng)。

...
"urlManager" => [
    "enablePrettyUrl" => true,
    "showScriptName" => false,
    "rules" => [
        "http://<_m:(sys|admin|photo)>.zhihu-local.com"=>"<_m>",

    ],
],
"adminUrlManager"=>[
    "class" => "appcomponentsUrlManager",
    "domainName" => "admin.abc.com",
]
...

好了,此刻我們?cè)谌魏我粋€(gè)模塊或app下執(zhí)行下面代碼

echo Yii::$app->adminUrlManager->createAbsoluteUrl(["default/index"]);

都會(huì)輸出我們想要的絕對(duì)地址。
http://admin.abc.com/index.ph...

目的達(dá)到了吧。

再說(shuō)幾句

今天是端午小長(zhǎng)假第二天,因陪家人來(lái)龍?zhí)洞髰{谷玩,晚上旅店的網(wǎng)絡(luò)不好,剛剛編輯好發(fā)出來(lái),實(shí)在不好意思,在這里我和北嫂也一起祝大家節(jié)日快樂(lè),多陪陪家人,他們才是最重要的。

歡迎來(lái)到我的小站 更多yii2視頻 http://nai8.me

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/23053.html

相關(guān)文章

  • 關(guān)于Yii2如何實(shí)現(xiàn)跨域SSO登錄解析

    摘要:例如,淘寶登錄的,登錄成功的。所以思考如何實(shí)現(xiàn)這種跨域的登錄就顯得尤為重要了。需求分析進(jìn)入登錄頁(yè)面的地址登錄成功后跳轉(zhuǎn)的地址下面我主要是以框架為例解說(shuō)一下我是怎么實(shí)現(xiàn)這種跨越的登錄的。 序言 近年來(lái)網(wǎng)絡(luò)發(fā)展很快,參與網(wǎng)購(gòu)的人越來(lái)越多,但是大家在網(wǎng)購(gòu)的時(shí)候不知到有沒(méi)有注意到無(wú)論是淘寶還是京東,他們用的都是二級(jí)域名,登錄一個(gè)URL,登錄成功后又是一個(gè)URL,作為一個(gè)開(kāi)發(fā)者反正我是注意到了。...

    Anchorer 評(píng)論0 收藏0
  • 關(guān)于Yii2如何實(shí)現(xiàn)跨域SSO登錄解析

    摘要:例如,淘寶登錄的,登錄成功的。所以思考如何實(shí)現(xiàn)這種跨域的登錄就顯得尤為重要了。需求分析進(jìn)入登錄頁(yè)面的地址登錄成功后跳轉(zhuǎn)的地址下面我主要是以框架為例解說(shuō)一下我是怎么實(shí)現(xiàn)這種跨越的登錄的。 序言 近年來(lái)網(wǎng)絡(luò)發(fā)展很快,參與網(wǎng)購(gòu)的人越來(lái)越多,但是大家在網(wǎng)購(gòu)的時(shí)候不知到有沒(méi)有注意到無(wú)論是淘寶還是京東,他們用的都是二級(jí)域名,登錄一個(gè)URL,登錄成功后又是一個(gè)URL,作為一個(gè)開(kāi)發(fā)者反正我是注意到了。...

    DirtyMind 評(píng)論0 收藏0
  • Yii2.0 RESTful API 之本控制

    摘要:之版本控制之前我寫(xiě)過(guò)兩篇關(guān)于如何搭建,以及認(rèn)證等處理,但是沒(méi)有涉及到版本管理,今天就來(lái)談?wù)劙姹竟芾砣绾螌?shí)現(xiàn)。如果你還沒(méi)有安裝,你可以按照這里的說(shuō)明進(jìn)行安裝。 Yii2.0 RESTful API 之版本控制 之前我寫(xiě)過(guò)兩篇關(guān)于 Yii2.0 RESTful API 如何搭建,以及 認(rèn)證 等處理,但是沒(méi)有涉及到版本管理,今天就來(lái)談?wù)劙姹竟芾砣绾螌?shí)現(xiàn)。 索性就從頭開(kāi)始一步一步搭建吧,但是關(guān)...

    _ang 評(píng)論0 收藏0
  • UWAF推出IPv6合規(guī)解決方案,助力金融政府客戶IPv6改造,更有1元體驗(yàn)嘗鮮!

    摘要:近期,又迎來(lái)了一次重大升級(jí),主要包括如下重點(diǎn)功能新增華南區(qū)域節(jié)點(diǎn)擴(kuò)展包,推出合規(guī)解決方案,新增中國(guó)內(nèi)地體驗(yàn)版。后續(xù)將進(jìn)一步支持回源多區(qū)域部署等功能,助力政府金融企業(yè)快速安全的實(shí)現(xiàn)改造。Web系統(tǒng)承載著各企事業(yè)單位的門戶、注冊(cè)登錄、業(yè)務(wù)執(zhí)行等職責(zé),很容易遭受各種類型的惡意流量攻擊,影響應(yīng)用可用性、損害安全性或消耗過(guò)多的資源,UCloud Web應(yīng)用防火墻UWAF則可以有效保護(hù)用戶的 Web 應(yīng)...

    Tecode 評(píng)論0 收藏0
  • yii2 url 重寫(xiě) 隱藏 index.php 方法

    摘要:第一步不管是還是,想要隱藏文件,需要打開(kāi)組件的配置,在進(jìn)行后續(xù)的操作第二步下配置文件內(nèi)容如下項(xiàng)目域名的配置整體是放在這個(gè)目錄下面改目錄下其中一個(gè)文件的內(nèi)容域名項(xiàng)目地址下偽靜態(tài)配置入口文件的同級(jí)目錄下,放置文件內(nèi)容如下 第一步 : 不管是 apache 還是 nginx ,想要隱藏 Index.php 文件,需要打開(kāi) urlManager 組件的配置,在進(jìn)行后續(xù)的操作 show...

    csRyan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<