使用泛域名解析和Laravel路由實(shí)現(xiàn)用戶自定義子域名

前段時(shí)間看到有人給簡(jiǎn)書提供的建議里有一條是希望簡(jiǎn)書能夠提供用戶自定義子域名功能。作為一個(gè)攻城獅,自然就開始想到自己能夠怎么實(shí)現(xiàn)這個(gè)功能。但是沒有什么特別好的思路。

今天突然靈光一現(xiàn),腦子里出現(xiàn)了“泛域名解析”這個(gè)詞。于是馬上聯(lián)想到了這個(gè)功能。再加上之前錄制《Laravel 入門之路由》這門課程的時(shí)候,提到過的子域名路由這個(gè)功能,馬上就想到了針對(duì)用戶自定義域名的解決方案。

首先呢,稍微解釋一下泛域名解析,泛域名解析就是在添加域名的解析記錄的時(shí)候,添加一條帶通配符*的記錄,這樣就能夠匹配到其他的所有域名。
比如,下圖是DNSPod的域名解析服務(wù),可以看到,它提示我如果使用*的話,就可以匹配其他所有域名。

DNSpod的域名記錄

所以,我們就添加這樣的一條記錄。


添加的記錄

這里因?yàn)槲以趦?nèi)網(wǎng)調(diào)試,所以就直接把記錄的內(nèi)容填成了我的內(nèi)網(wǎng)地址。大家在使用的時(shí)候記得填寫服務(wù)器地址就行。

等待一會(huì)兒之后,添加的記錄就生效了。這時(shí)候,我只要隨便輸入一個(gè)之前不存在的子域名,都會(huì)指向192.168.1.101。比如:

隨意的子域名

現(xiàn)在,我們只需要進(jìn)入到Laravel當(dāng)中去,修改一下路由。

修改路由

上圖里,我給這個(gè)組添加了一個(gè)domain的限制,并且在它對(duì)應(yīng)的值里添加了一個(gè)user的參數(shù),也就是說它會(huì)將子域名部分當(dāng)做參數(shù),傳遞給組內(nèi)的所有請(qǐng)求處理函數(shù)。
然后,在里面的這個(gè)請(qǐng)求處理函數(shù)里,我只是簡(jiǎn)單的顯示了一下這個(gè)子域名。對(duì)于大家來說,可以通過這個(gè)參數(shù),找到對(duì)應(yīng)的用戶,顯示用戶的個(gè)人主頁(yè),這樣就是可以實(shí)現(xiàn)通過子域名訪問用戶的主頁(yè)啦!

結(jié)果是這樣滴

當(dāng)然,在這之前還要進(jìn)行子域名和用戶之間的綁定,不過這個(gè)就非常簡(jiǎn)單了,在數(shù)據(jù)庫(kù)里添加一條記錄就可以了。

這樣,通過泛域名解析和Laravel提供的的路由功能,就能非常簡(jiǎn)單的實(shí)現(xiàn)用戶的自定義域名啦。

PS:我這里只是進(jìn)行了原理性的演示,實(shí)際使用過程中還需要對(duì)服務(wù)器軟件(Apache、Nginx等)進(jìn)行配置,讓它們能夠支持通過不同的域名來訪問。


感謝您的閱讀!
本賬號(hào)已經(jīng)不再更新,更多文章請(qǐng)移步我的個(gè)人博客https://www.zacharyjia.me

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,909評(píng)論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評(píng)論 19 139
  • 路由 路由(routing)就是通過互聯(lián)的網(wǎng)絡(luò)把信息從源地址傳輸?shù)侥康牡刂返幕顒?dòng)。路由發(fā)生在OSI網(wǎng)絡(luò)參考模型中的...
    Dearmadman閱讀 2,954評(píng)論 2 9
  • 域名(Domain Name),是由一串用 點(diǎn) 分隔的名字 組成的 Internet 上某一臺(tái)計(jì)算機(jī)或計(jì)算機(jī)組的名...
    甘哲157閱讀 2,360評(píng)論 1 11
  • /文字整理:貌美的BB/ “妾在巫山之陽(yáng),高丘之阻。旦為朝云,暮為行雨,朝朝暮暮,陽(yáng)臺(tái)之下。” ...
    字字朱璣閱讀 983評(píng)論 0 0

友情鏈接更多精彩內(nèi)容