1. 程式人生 > >.htaccess偽靜態(URL重寫)綁定域名到子目錄實現子站點

.htaccess偽靜態(URL重寫)綁定域名到子目錄實現子站點

內容 ring 代碼 子站點 nbsp sharp 域名 即使 har

Apache主機一般支持.htaccess偽靜態,即可以實現綁定域名到子目錄、一個空間多個站點。

應用舉例:綁定htaccess.800m.net到htaccess目錄

根目錄下.htaccess內容

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# 綁定htaccess.800m.net到子目錄htaccess
RewriteCond %{HTTP_HOST} ^htaccess\.800m\.net$ [NC]
RewriteCond %{REQUEST_URI} !^/htaccess/
RewriteRule ^(.*)$ htaccess/$1?Rewrite [L,QSA]
#可以綁定多個,只需重復上三行代碼並更改一下域名、目錄名就行了
</IfModule>

即使HTTP_HOST中的“.”不加反斜杠,也能夠實現綁定htaccess.800m.net,因為“.”可以匹配任意一個字符。

htaccess目錄下的.htaccess內容

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#只許綁定的域名訪問,其他域名301跳轉
RewriteCond %{HTTP_HOST} !^htaccess\.800m\.net$ [NC]
RewriteRule (.*) http://htaccess.800m.net/$1 [L,R=301]
#對綁定目錄下htaccess目錄的處理
RewriteCond %{REQUEST_URI} ^\/htaccess\/ [NC]
RewriteCond %{QUERY_STRING} !^(.*)?Rewrite
#htaccess.800m.net/htaccess實際上訪問htaccess.800m.net/htaccess/htaccess RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA] </IfModule>

當然,如果對綁定子目錄的要求不高的話,子目錄下就不需要建立.htaccess文件了。

.htaccess偽靜態(URL重寫)綁定域名到子目錄實現子站點