apache實現二級域名隱性轉發
如何讓網站支持二級域名的訪問,並且不改變原來網站的結構,成了廣大建站者的熱議問題。這樣做的好處就是,我們可以採用二級域名的方式訪問網站的二級目錄;也可以採用二級域名關聯到不同的網站。本文檔的實現方式是藉助於apache的.htaccess實現的(IBM的IHS也是支持的,我這幾就是使用的IHS)。
1、聯繫自己申請域名的代理商,申請泛域名支持;設置泛域名*.attagain.com指向同一個IP。
2、建立bbs.attagain.com、blog.attagain.com等二級域名,確認二級域名對應的attagain.com/bbs、attagain.com/blog等二級目錄可以正常訪問。
3、設置apache(ihs)的httpd.conf,使得Rewrite能夠工作。
a、將下面的信息:
<Directory />
Options FollowSymLinks
AllowOverride None
FileETag All -INode
</Directory>
修改爲:
<Directory />
Options FollowSymLinks
#AllowOverride None
AllowOverride All
FileETag All -INode
</Directory>
b、查找如下信息,如果是註釋狀態,把去掉前邊的“#”。
LoadModule rewrite_module modules/mod_rewrite.so
4、設置apache自動隱藏轉發信息。
需要生成的【隱藏轉發】配置信息如下:
RewriteEngine on
DirectoryIndex index.html index.htm index.jsp
# <www.attagain.com>-><attagain.com>
RewriteCond %{HTTP_HOST} ^([w]{3})\.attagain\.com$
RewriteRule ^/?(.*)$ /$1 [PT,L]
# <???.attagain.com>-><attagain.com/???>(bbs,blog ...)
RewriteCond %{HTTP_HOST} ^([\w]+)\.attagain\.com$
RewriteRule ^/?(.*)$ /%1/$1 [PT,L]
說明:3-5行中,主要實現二級域名www.attagain.com轉發爲attagain.com的處理。
6-8行中,主要實現僅僅允許字符和數字的二級域名的隱藏轉發,
即abc.attagain.com可以轉發爲attagain.com/abc,
abc.attagain.com/text.html可以轉發爲attagain.com/abc/text.html。
本人只需要二級域名的轉發功能,如果有需要3、4級域名轉發的話,
可以參照6-8行的正則表達式添加新的轉發規則。
本文中提供兩種設置方法。
a、apache的httpd.conf中直接配置。
在配置文件最後,直接添加上述【隱藏轉發】配置信息。
b、在網站的虛擬目錄中放置.htaccess文件,如果是上傳到服務器,一定要使用ASC方式。
①、確認apache中的htaccess信息。
搜索如下信息,確保不被註釋掉。
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
②、使用.htaccess文件。
創建.htaccess文件,沒有擴展名,一定要使用apache所在系統的字符集。
文件內容爲,【隱藏轉發】配置信息。
說明:a、b兩種方法,本人比較偏向於a。
原因很簡單,使用.htaccess文件,apache需要逐個目錄進行解析判斷,效率會受到影響。
1、聯繫自己申請域名的代理商,申請泛域名支持;設置泛域名*.attagain.com指向同一個IP。
2、建立bbs.attagain.com、blog.attagain.com等二級域名,確認二級域名對應的attagain.com/bbs、attagain.com/blog等二級目錄可以正常訪問。
3、設置apache(ihs)的httpd.conf,使得Rewrite能夠工作。
a、將下面的信息:
<Directory />
Options FollowSymLinks
AllowOverride None
FileETag All -INode
</Directory>
修改爲:
<Directory />
Options FollowSymLinks
#AllowOverride None
AllowOverride All
FileETag All -INode
</Directory>
b、查找如下信息,如果是註釋狀態,把去掉前邊的“#”。
LoadModule rewrite_module modules/mod_rewrite.so
4、設置apache自動隱藏轉發信息。
需要生成的【隱藏轉發】配置信息如下:
RewriteEngine on
DirectoryIndex index.html index.htm index.jsp
# <www.attagain.com>-><attagain.com>
RewriteCond %{HTTP_HOST} ^([w]{3})\.attagain\.com$
RewriteRule ^/?(.*)$ /$1 [PT,L]
# <???.attagain.com>-><attagain.com/???>(bbs,blog ...)
RewriteCond %{HTTP_HOST} ^([\w]+)\.attagain\.com$
RewriteRule ^/?(.*)$ /%1/$1 [PT,L]
說明:3-5行中,主要實現二級域名www.attagain.com轉發爲attagain.com的處理。
6-8行中,主要實現僅僅允許字符和數字的二級域名的隱藏轉發,
即abc.attagain.com可以轉發爲attagain.com/abc,
abc.attagain.com/text.html可以轉發爲attagain.com/abc/text.html。
本人只需要二級域名的轉發功能,如果有需要3、4級域名轉發的話,
可以參照6-8行的正則表達式添加新的轉發規則。
本文中提供兩種設置方法。
a、apache的httpd.conf中直接配置。
在配置文件最後,直接添加上述【隱藏轉發】配置信息。
b、在網站的虛擬目錄中放置.htaccess文件,如果是上傳到服務器,一定要使用ASC方式。
①、確認apache中的htaccess信息。
搜索如下信息,確保不被註釋掉。
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
②、使用.htaccess文件。
創建.htaccess文件,沒有擴展名,一定要使用apache所在系統的字符集。
文件內容爲,【隱藏轉發】配置信息。
說明:a、b兩種方法,本人比較偏向於a。
原因很簡單,使用.htaccess文件,apache需要逐個目錄進行解析判斷,效率會受到影響。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.