最近,受朋友委託,幫忙寫一套多使用者部落格系統,要求每乙個註冊使用者根據會員名自動生成二級網域名稱指向,比如:你註冊的使用者名稱是:hengbo,主站網域名稱:cycf.org.cn,那這個使用者的部落格位址是:hengbo.cycf.org.cn;首先我想到的是用泛網域名稱解析,然後修改apache中的虛擬主機繫結,
第一步:開啟網域名稱解析伺服器,新增一條a記錄,其中,「主機名」填寫「*」 ,「指向」填寫為自己**的伺服器ip。這樣所有
*.cycf.org.cn 都指向202.20
.88.44 所以不管你申請什麼名字,如:chenwenming.cublog.cn 都解析到這個ip上。最主要的是apache的配置了。
將所有的虛擬主機段先刪除,加入
servername localhost
serveralias *
usecanonicalname off
virtualdocumentroot d:/www/%1
servername在這裡不起作用,serveralias會將網域名稱解析到d:/www下對應的目錄,北京php培訓這樣就不用每次都修改httpd.conf檔案了。
需要注意的是使用virtualdocumentroot指令需要載入mod_vhost_alias模組,php培訓,北京php培訓
去掉包含mod_vhost_alias行對應的loadmodule和addmodule前面的"#",restart一下apache就ok了
試了一下,果然很爽,可以使用
virtualdocumentroot /www/%2+
來實現泛解析,不過不管什麼二級網域名稱都被解析到根目錄了,
*.cycf.org.cn 會被指向 /www/root
再想想,於是,可以用
virtualdocumentroot /www/%2+/%0
來實現二級網域名稱分目錄,即
www.hengboit.com 會被指向 /www/root/www.hengboit.com
test1.cycf.org.cn 會被指向 /www/root/test1.cycf.org.cn
test2.cycf.org.cn 會被指向 /www/root/test2.cycf.org.cn
剩下的就是我們怎麼樣用php程式修改這個檔案了,每註冊乙個使用者,自動生成乙個資料夾,這樣就很輕鬆的實現了每個使用者都有乙個二級網域名稱
怎麼?你看不懂嗎?呵呵,讓我們的apache載入的模組檔案怎麼實現虛擬目前就可以了,就看我們是怎麼修改的了
abc.com的a記錄和泛解析都已經指向了同乙個空間(空間已支援泛解析)
在根目錄下有三個目錄(www目錄,1目錄,2目錄)
要求如下
1、訪問www.abc.com時
此時位址列顯示實際是下的預設檔案,如index.php)
2、訪問abc.com時
此時位址列顯示實際是下的預設檔案,如index.php)
3、訪問1.abc.com時
此時位址列顯示實際是下的預設檔案,如index.php)
4、訪問2.abc.com時
此時位址列顯示實際是下的預設檔案,如index.php)
環境是 nginx + fastcgi
框架 tp
由於tp是單入口訪問模式,這裡不得不借助於php的動態處理。
假設, 乙個網域名稱 example.com 使用者二級網域名稱形如 user1.example.com user2.example.com ......
要求以userx.example.com 訪問的時候,繫結到 member 模組下的 index 方法。
首先,在nginx中需要如下配置:
server
}
複製**
tp中 /member/index 下,通過
$user
=$_get
['user'
];//獲取使用者名稱
//根據使用者名稱取該使用者的資料,過程省略。
....
複製**
訪問實際上等於
?m=member&a=index&user=user1
這裡有個ftype額外的引數,可以通過tp的route路由處理
路由規則如下:
"ftype/([^\/])+" => "member/index?ftype=:1"
tp處理後,
會自動將 ftype引數合併到$_get中,直接在member/index 中通過$_get['ftype'] 呼叫即可。
url等價於
當然,在3.x版本中,也許還可以通過$ftype=$_get["_url_"][1]; 來取得,就不要路由了。我個人不太推薦這種辦法,如果ftype在url中的位置發生變化,將取不到值。
以上是我個人的一點探索,如果誰有更好的解決方案,請務必不吝賜教,謝謝!
二級網域名稱泛解析,讓iis支援二級網域名稱泛解析
今天一朋友問我這個問題,和一些blog 一樣,在自己的 中實現二級網域名稱泛解析 如 乙個新使用者aa註冊了 aa.sohu.com 訪問直接訪問到www.sohu.com aa 或者直接就是aa.sohu.com aa 等等。下面就說下,乙個簡單的辦法,不過只是說下原理,具體的操作還有何具體的要求...
apache 泛網域名稱 二級網域名稱繫結
好記性不如爛筆頭,呵呵,先寫下來以免到時需要的時候忘記!開啟rewrite模式那些就省略了 直接上配置 windows主機 如果是linux或者虛擬主機,路徑方面需要改一下 如rewritemap vhost txt usr local etc apache vhost.map,rewritecon...
nginx 二級網域名稱
在nginx實現不限制二級網域名稱,也就是說用 來解析一下網域名稱,可以實現多個網域名稱,二級網域名稱甚至 網域名稱,四級網域名稱都可以實現,下面將配置說一下。首先確定是在server的配置項裡面新增 server location 上面的配置的意思說一下 listen是監聽的埠號 serverna...