很多企業(yè)買了一個較大容量和帶寬的空間,想申請把幾個網站一起放在同一個虛擬主機里,但是受到虛擬主機的限制,因為標準型的虛擬主機網站空間只支持一個域名解析一個目錄站,那么對很多朋友而言來說是一個極大的空間浪費。今天藤設計來和大家分享一下:
<?php switch ($_SERVER["HTTP_HOST"]) { case "www.aaa.com": header("location:.aaa"); break; case "www.bbb.com": header("location:.bbb"); break; case "www.ccc.com": header("ccc"); break; } ?>
也就是在根目錄 / 下放一個 index.php,然后根據域名分別跳轉到對應的子目錄下,實現同一個空間安裝多個網站的辦法。
但這種方法畢竟有點拖沓,于是有了另一段代碼:
RewriteEngine on DirectoryIndex index.html index.htm index.php default.php index.cgi # 條件:如果所訪問的目標既不是文件,也不是目錄 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 那么: ########################### 第一段 ######################## # 把 /aaa.com/ 作為 www.aaa.com 的根目錄 # 如果主機為 www.aaa.com 并且 uri 不以 /aaa.com/ 作為開頭 RewriteCond %{HTTP_HOST} www.aaa.com RewriteCond %{REQUEST_URI} !^/aaa.com/ #那么,就把網址里所有的文件都跳轉到 /aaa.com/下對應的內容: RewriteRule ^(.*)$ /aaa.com/$1 # 如果主機為 www.aaa.com RewriteCond %{HTTP_HOST} www.aaa.com #那么,就把默認首頁 / 跳轉到 /aaa.com/index.php文件,并結束跳轉 RewriteRule ^(/)?$ aaa.com/index.php [L] ########################### 第二段 ######################## RewriteCond %{HTTP_HOST} ^www.bbb.com$ RewriteCond %{REQUEST_URI} !^/bbb.com/ RewriteRule ^(.*)$ /bbb.com/$1 RewriteCond %{HTTP_HOST} ^www.bbb.com$ RewriteRule ^(/)?$ bbb.com/index.php [L] ########################### 第三段 ######################## RewriteCond %{HTTP_HOST} ^www.ccc.com$ RewriteCond %{REQUEST_URI} !^/ccc.com/ RewriteRule ^(.*)$ /ccc.com/$1 RewriteCond %{HTTP_HOST} ^www.ccc.com$ RewriteRule ^(/)?$ ccc.com/ [L] # ... 以此類推
這是一段 apache的配置文件。當前所有Linux虛擬空間和全能空間都會支持 .htaccess 配置吧。
其實現在nginx對我來說更加熟練,但現在已經用不著這么玩了。
第二段代碼是看不到實際路徑的。所有的子目錄都會顯示成 /