用htaccess url重寫實現多個二級域名映射同一個空間

用htaccess url重寫實現多個二級域名映射同一個空間(linux虛擬主機空間,沒錢買多個空間也不怕,一個主機空間開多個網站)

猜你想用這樣的域名訪問你的網站?

blog.uacool.com    bbs.uacool.com   

home.uacool.com    game.uacool.com

但是沒錢買太多的主機空間,我們只有一個 虛擬主機空間 還有一個域名,怎麼辦? 相信很多人只好用頂級域名訪問空間的二級目錄 比如: www.uacool.com/bbs    www.uacool.com/blog    無奈般的放棄了 bbs.uacool.com    blog.uacool.com 這樣的二級域名來訪問空間

本文將教新手們解決這個問題。徹底的實現N多個二級域名訪問同一個虛擬主機的不同目錄。

現在手裏只有:一個Linux虛擬主機空間 和一個頂級域名 uacool.com

虛擬主機目錄結構(其中wwwroot代表web服務器根目錄) :
wwwroot/
wwwroot/blog
wwwroot/bbs

目標實現:
訪問blog.uacool.com 自動 訪問服務器跟目錄下的wwwroot/blog
訪問bbs.uacool.com 自動 訪問服務器根目錄下的wwwroot/bbs
等等N多個二級域名訪問同一個虛擬主機空間功能(非跳轉)

實現方法:
用.htaccess文件來實現,把寫好的.htacess文件放到服務器的根目錄下,比如 wwwroot/.htaccess
.htaccess文件內容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
RewriteEngine on
RewriteCond %{HTTP_HOST} ^blog.uacool.com$
RewriteCond %{REQUEST_URI} !^/blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /blog/$1
RewriteCond %{HTTP_HOST} ^blog.uacool.com$
RewriteRule ^(/)?$ blog/index.php [L]
  
RewriteCond %{HTTP_HOST} ^it.uacool.com$
RewriteCond %{REQUEST_URI} !^/it/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /it/$1
RewriteCond %{HTTP_HOST} ^it.uacool.com$
RewriteRule ^(/)?$ it/index.php [L]

以上代碼爲筆記自己Linux虛擬主機服務器上的 .htaccess 文件內容,分別實現了 blog.uacool.com 以及 it.uacool.com 兩個二級域名指向一個虛擬主機兩個不同目錄的功能。
其實工作原理就是利用 urlrewrite URL重寫功能。
後續文章 將介紹 web開發人員配置本地開發目錄方法,通過不同url映射到不同的開發目錄其實跟本文大同小異

發佈了35 篇原創文章 · 獲贊 5 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章