利用.htaccess繫結子域名到子目錄

阿珏酱發表於2024-05-20

Tips:當你看到這個提示的時候,說明當前的文章是由原emlog部落格系統搬遷至此的,文章釋出時間已過於久遠,編排和內容不一定完整,還請諒解`

利用.htaccess繫結子域名到子目錄

日期:2018-1-22 阿珏 折騰程式碼 瀏覽:1982次 評論:3條

一般情況下,一臺虛擬主機只允許繫結一個域名到根目錄下。
使用過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]  
#可以繫結多個 只需重複上三行程式碼並更改一下域名、目錄名 就好了  
</IfModule> 
如果你以完成上面的步驟 你的子域名應該可以訪問了, 但你會發現在瀏覽器上訪問 主域名+繫結的域名目錄 也可以訪問,可這並不是我們想要的
接下來我們完成最後一步, 在每一個繫結的目錄中 如link目錄中 也增加一個 .htaccess 檔案 .
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]  
</IfModule> 
結語:
由於我的伺服器本身就支援子域名繫結到子目錄,所以自個沒法測試,不過我讓朋友在阿里雲的主機測試透過了,不過阿里雲限制了數量,多繫結的話看會跳到根目錄。由此看來並不是所有的伺服器商都支援這麼玩的,還得自行測試。
最後,最重要的一點就是,你域名得解析過來才有用的[哭笑~]
本部落格所有文章 如無特別註明 均為原創。 作者: 阿珏 複製或轉載請 以超連結形式 註明轉自 阿珏部落格
原文地址《 利用.htaccess繫結子域名到子目錄

網友評論:

小二郎. 2年前 (2019-06-12)
不讓複製 是要老子手寫嗎

阿珏 2年前 (2019-06-13)
@小二郎.:就特麼是讓你手寫怎麼樣了

阿珏 3年前 (2018-03-15)
[#aru_1][#微笑][#wb_doge][#(驚哭)]

相關文章