用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映射到不同的開發目錄其實跟本文大同小異