利用.htaccess綁定子網域到子目錄

利用.htaccess綁定子網域到子目錄

一般情況下,一台虛擬主機只允許綁定一個域名到根目錄下。 使用過emlog的人,應該對其中的靜態連結不陌生,它就是典型的利用.htaccess檔案來對網頁進行域名轉向。 利用.htaccess綁定域名到子目錄,前提是你的空間伺服器必須支援Apache的rewrite功能,只有這樣才能使用.htaccess。如果你的空間是Linux伺服器,一般預設都已開啟。即可以實現綁定域名到子目錄、一個空間多個站點。

下面是以 link.52ecy.cn 綁定到子目錄link為例的.htaccess程式碼。

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /

綁定link.52ecy.cn 到子目錄link

RewriteCond %{HTTP_HOST} ^link\.52ecy\.cn$ [NC] RewriteCond %{REQUEST_URI} !^/link/ RewriteRule ^(.*)$ link/$1?Rewrite [L,QSA] #可以綁定多個 只需重複上三行程式碼並更改一下域名、目錄名 就好了

如果你已完成上面的步驟,你的子域名應該可以訪問了,但你會發現在瀏覽器上訪問「主域名+綁定的域名目錄」也可以訪問,可這並不是我們想要的。 接下來我們完成最後一步,在每一個綁定的目錄中,如link目錄中,也增加一個 .htaccess 檔案。 .htaccess程式碼如下:

下面是以 music.xmgho.com 綁定到子目錄music為例的.htaccess程式碼。 即可以實現綁定域名到子目錄、一個空間多個站點。即可以實現綁定域名到子目錄、一個空間多個站點。即可以實現綁定域名到子目錄、一個空間多個站點。即可以實現綁定域名到子目錄、一個空間多個站點。

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / #只許綁定的域名訪問 RewriteCond %{HTTP_HOST} !^link\.52ecy\.cn$ [NC] RewriteRule (.*) http://link.52ecy.cn/$1 [L,R=301] #對綁定目錄下與 同名的目錄的處理 RewriteCond %{REQUEST_URI} ^\/link\/ [NC] RewriteCond %{QUERY_STRING} !^(.*)?Rewrite RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]

結語: 由於我的伺服器本身就支援子域名綁定到子目錄,所以我自己沒法測試,不過我讓朋友在阿里云的主機測試通過了,但阿里云限制了數量,多綁定的話會跳到根目錄。由此看來,並不是所有的伺服器商都支援這樣玩,還得自行測試。 最後,最重要的一點就是,你的域名得解析過來才有用的[哭笑~]

Powered by ❤️ with Hugo and Stack Theme.