阿里的普通版虛擬雲主機最多只能建一個站點,但可以綁定多個域名。如果我們想創建2個或3個主機怎么辦呢?難道需要再另外購買一台主機?
其實我們可以通過.htaccess文件來定義相關域名綁定對應的網站目錄,這樣來實現一台主機上掛多個站點。
另外,阿里虛擬主機也是可以自定義.htaccess文件的,我們只需要通過FTP連接,勾選 "強制顯示隱藏文件" 即可在網站根目錄中看到了。
使用FTP工具,右擊編輯該文件:
默認內容模版(存檔):
RewriteEngine on <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
域名跳轉方法:
RewriteEngine on <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^blog.abc.com [NC] RewriteRule ^(.*)$ http://abc.com/blog/$1 [L,R=301] </IfModule>
二級域名綁定/映射到子目錄方法:
示例:
RewriteEngine on RewriteCond %{HTTP_HOST} ^www.111cn.net$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteBase / RewriteRule . /index.php [L] RewriteCond %{HTTP_HOST} ^down.111cn.net$ #服務器名 RewriteCond %{REQUEST_URI} !^/down/ #需要綁定的2級目錄 RewriteCond %{REQUEST_FILENAME} !-f #排除請求的參數不是文件 RewriteCond %{REQUEST_FILENAME} !-d #排除請求的參數不是目錄 RewriteRule ^(.*)$ /down/$1 #轉發規則 #這個目的是用來直接跳轉的 RewriteCond %{HTTP_HOST} ^down.111cn.net$ RewriteRule ^(/)?index.php$ down/index.php [L]
我使用的模版:
RewriteEngine on # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # 綁定a.abc.com 到 new子目錄 RewriteCond %{HTTP_HOST} ^a.abc.com$ [NC] RewriteCond %{REQUEST_URI} !^/new/ RewriteRule ^(.*)$ new/$1 [L,QSA] </IfModule> # END WordPress