1、如何配置Apache的Rewrite規則實現二級域名的轉化
^RewriteEngine on
rewritecond %{http_host} ^abc.ideasbulb.com [nc]
rewriterule ^(.*).ideasbulb.com(.*)$ ideasbulb.com/$1$2 [r=301,nc]
2、如何自動化實現二級域名訪問,類似博客
解析無限個二級域名的方法有三種:
無論使用哪種,都必須使用域名泛解析。將*.test.com(此處我們test.com作例子)解析到你指定的伺服器上。
如:
*.test.com 222.222.222.222
註:
作域名泛解析前,必須確認域名服務商對你提供域名泛解析服務。否則,後面的工作都是徒勞的。
方法一:使用Windows自帶DNS解析。
步驟:
1,添加好test.com,如下圖
2,在test下添加一個名稱為 * 的域 (右鍵,添加域),添加完如下圖
3,在*的域下,添加一個主機(右鍵,新建主機,主機名稱為空,IP則填寫為您要將域名泛解析的對應IP),添加完如下圖。
解析完成,測試一下,Ping test.test.com 是不是解析到222.222.222.222
方法二:使用程序進行判斷調整。
步驟:
1,iis服務的主機頭留空,新建Default.asp文件,並把新建文件的執行優先順序設定為最高(IIS設置屬性中的文檔,將Default.asp移到最上面)。
Default.asp文件代碼:
<%
Dim iURL
iURL = Split(Request.ServerVariables("SERVER_NAME"),".")
If Lcase(iURL(0))="www" Then
'此處為網站首頁地址,請自行選擇
Response.Redirect("index.asp")
Else
'如二級域名所調轉地址,請自行更改此處地址
Response.Write( "<frameset><frame src=""**.asp?"&iURL(0)&".index.html""></frameset>")
End If
%>
方法三:使用 ISAPI_Rewrite URL處理引擎
先介紹一下ISAPI_Rewrite :
ISAPI_Rewrite是一個強大的基於正則表達式的URL處理引擎。它非常類似於Apache's mod_Rewrite,但它是專為IIS設計的。
ISAPI_Rewrite有兩個版本:ISAPI_Rewrite Full與ISAPI_Rewrite Lite。
ISAPI_Rewrite Lite是免費版本,但不支持反向代理功能。
ISAPI_Rewrite Full只能下載到30天的試用版本。
解析二級域名就可以用ISAPI_Rewrite一個規則來實現。
如:
test.test.com 映射成 www.test.com/test/
規則如下:
RewriteCond Host: (?!/.|www|ww)(.*).test.com
RewriteRule (.*) http/://www.test.com/$1$2 [I,R]
此三方法比較:
偶個人認為,方法一,解析速度會快點,但沒有做過驗證。只是感覺系統自帶的東西會好些。
另,方法一和三,一台伺服器可以做多域名的泛解析,而方法二,一台伺服器只可以做一個域名的泛解析。
3、如何實現像博客中的二級域名
解析無限個二級域名的方法有三種:
無論使用哪種,都必須使用域名泛解析。將*.test.com(此處我們test.com作例子)解析到你指定的伺服器上。
如:
*.test.com 222.222.222.222
註:
作域名泛解析前,必須確認域名服務商對你提供域名泛解析服務。否則,後面的工作都是徒勞的。
方法一:使用Windows自帶DNS解析。
步驟:
1,添加好test.com,如下圖
2,在test下添加一個名稱為 * 的域 (右鍵,添加域),添加完如下圖
3,在*的域下,添加一個主機(右鍵,新建主機,主機名稱為空,IP則填寫為您要將域名泛解析的對應IP),添加完如下圖。
解析完成,測試一下,Ping test.test.com 是不是解析到222.222.222.222
方法二:使用程序進行判斷調整。
步驟:
1,iis服務的主機頭留空,新建Default.asp文件,並把新建文件的執行優先順序設定為最高(IIS設置屬性中的文檔,將Default.asp移到最上面)。
Default.asp文件代碼:
<%
Dim iURL
iURL = Split(Request.ServerVariables("SERVER_NAME"),".")
If Lcase(iURL(0))="www" Then
'此處為網站首頁地址,請自行選擇
Response.Redirect("index.asp")
Else
'如二級域名所調轉地址,請自行更改此處地址
Response.Write( "<frameset><frame src=""**.asp?"&iURL(0)&".index.html""></frameset>")
End If
%>
方法三:使用 ISAPI_Rewrite URL處理引擎
先介紹一下ISAPI_Rewrite :
ISAPI_Rewrite是一個強大的基於正則表達式的URL處理引擎。它非常類似於Apache's mod_Rewrite,但它是專為IIS設計的。
ISAPI_Rewrite有兩個版本:ISAPI_Rewrite Full與ISAPI_Rewrite Lite。
ISAPI_Rewrite Lite是免費版本,但不支持反向代理功能。
ISAPI_Rewrite Full只能下載到30天的試用版本。
解析二級域名就可以用ISAPI_Rewrite一個規則來實現。
如:
test.test.com 映射成 www.test.com/test/
規則如下:
RewriteCond Host: (?!/.|www|ww)(.*).test.com
RewriteRule (.*) http/://www.test.com/$1$2 [I,R]
此三方法比較:
偶個人認為,方法一,解析速度會快點,但沒有做過驗證。只是感覺系統自帶的東西會好些。
另,方法一和三,一台伺服器可以做多域名的泛解析,而方法二,一台伺服器只可以做一個域名的泛解析。
4、怎麼用.htaccess綁定二級域名到子目錄
通過.htaccess文件設置重定向,把二級域名綁定到指定的子目錄。
先把要綁定的域名A記錄或CNAME也指向和主域名所在的主機IP,然後可以.htaccess通過如下代碼綁定相應文件夾:
代碼如下
復制代碼
RewriteEngine on
RewriteCond %{HTTP_HOST} ^bbs.domain.com$
RewriteCond %{REQUEST_URI} !^/bbs/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /bbs/$1
RewriteCond %{HTTP_HOST} ^bbs.domain.com$
RewriteRule ^(/)?$ bbs/index.php [L]
如果很多個二級域名都指定的話,每個都這么寫.htaccess文件就會非常龐大臃腫,可以使用以下正則匹配寫法:
代碼如下
復制代碼
RewriteCond %{HTTP_HOST} ^(bbs|blog|download).domain.com$
RewriteRule ^(.*)$ /%1/$1 [L, NC]
這樣,會自動把bbs對應到bbs目錄,blog對應到blog目錄,download對應到download,要加新的域名時,只需要在上面那行按格式添加即可。
5、IIS7里UrlRewrite實現子域名怎麼寫
以你現在的方式,應該用不上重寫吧:
1.把你的域名設置好泛解析
2.在IIS上設置好網站,留空主機頭
3.asp.net 判斷request.url.host
4.重下你要操作的。
6、有誰會用ISAPI_Rewrite對asp網站重寫url實現二級域名嗎?指導一下
網上找的,你試試
0、首先需要一個有效的頂級域名,並且設置該域名下二級域名的泛解析到虛擬主機所在伺服器IP(即如:*.eboat.cn => 123.234.55.101)。
1、在http://www.helicontech.com/download.htm下載ISAPI_Rewrite Lite Free版本。版本不用太高,如果願意付點$,用Full版當然也不錯哦。安裝,隨便裝在哪個位置。
注意:Lite版本不支持虛擬主機層次的配置,但僅僅是配置(就是dll只能讀取自身安裝目錄下的全局配置httpd.ini)。如果是僅用於某虛擬主機的任意二級域名解析,可以將ISAPI_Rewrite.dll僅放置在該虛擬主機的配置中(即不在IIS的「網站>ISAPI篩選器」中插入,而是添加在虛擬主機網站的ISAPI篩選器中),這樣就不會影響伺服器對其它網站的處理。
2、將需要二級域名的虛擬主機的主機頭置空,使得所有未在伺服器上單獨配置的虛擬主機域名都被定向到此處。注意!不是在伺服器上單獨新建一個無主機頭的網站,必須在需要實現二級域名的當前網站上進行URL的Rewrite配置。這點很重要。
3、將ISAPI_Rewrite安裝時自動配置在IIS中的全局設定取消(IIS>網站>ISAPI篩選器,刪除ISAPI_Rewrite),在需要二級域名解析的虛擬主機(網站)中配置ISAPI_Rewrite.dll(屬性>ISAPI篩選器>添加...,名稱可以隨便寫,如Url-Rewrite)。
4、修改ISAPI_Rewrite安裝目錄下的配置文件httpd.ini。舉例如下:
Java代碼
[ISAPI_Rewrite]
RepeatLimit 1
# Defend your computer from some worm attacks
RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]
# 排除當前虛擬主機需要正常訪問的域名(web.eboat.cn www.eboat.cn)
# RewriteCond Host: (?:web|www)\.eboat\.cn
# 多數情況下是一個,即當前提供二級域名服務的系統(如建站系統)
RewriteCond Host: web\.eboat\.cn
RewriteRule (.*) $1 [L]
# 解決不規范目錄(末尾無/)的問題
# 但前提是目錄名不含『.』而文件名必須包含,否則無法區分兩者
# 如果保證URL中的目錄名稱規范,則無需此規則
RewriteRule ^/([^.]+[^/]$) /$1/ [L,R]
# 提取任意的二級域名名稱(即第一個詞彙)
# 用[a-zA-Z0-9_-]限制名稱字元,重寫Url到Home/子目錄下
# 如 test.eboat.cn => web.eboat.cn/Home/test
RewriteCond Host: ([a-zA-Z0-9_-]+)\.eboat\.cn
RewriteRule ^/(.*) /Home/$1/$2 [I,L]
[ISAPI_Rewrite]
RepeatLimit 1
# Defend your computer from some worm attacks
RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]
# 排除當前虛擬主機需要正常訪問的域名(web.eboat.cn www.eboat.cn)
# RewriteCond Host: (?:web|www)\.eboat\.cn
# 多數情況下是一個,即當前提供二級域名服務的系統(如建站系統)
RewriteCond Host: web\.eboat\.cn
RewriteRule (.*) $1 [L]
# 解決不規范目錄(末尾無/)的問題
# 但前提是目錄名不含『.』而文件名必須包含,否則無法區分兩者
# 如果保證URL中的目錄名稱規范,則無需此規則
RewriteRule ^/([^.]+[^/]$) /$1/ [L,R]
# 提取任意的二級域名名稱(即第一個詞彙)
# 用[a-zA-Z0-9_-]限制名稱字元,重寫Url到Home/子目錄下
# 如 test.eboat.cn => web.eboat.cn/Home/test
RewriteCond Host: ([a-zA-Z0-9_-]+)\.eboat\.cn
RewriteRule ^/(.*) /Home/$1/$2 [I,L]
注意!上面的規則不能寫成
RewriteRule ^/(.*) http\://web\.eboat\.cn/Home/$1/$2 [I,L]
這也是必須在系統所在網站上解析的原因。如果最後是[I,R],訪問是可以的,但是瀏覽器的地址欄會顯示實際的Url,達不到透明二級域名的效果。
總結:
之前查了Google,沒找到簡單實現的例子。其實這主要是規則上的問題,即使是將ISAPI_Rewrite放在IIS的「網站」全局配置中也是可以的,因為規則不會匹配其它的網站(頂級域名限制),Rewrite不會起作用。只是放在全局配置中,訪問其它網站也要經過這個.dll過濾器,或多或少的有些不合理。
成功配置和運行,網上說要用Full的破解版才行(1.x的版本,試過可行)。所以這里特地將Lite免費版的用法貼出來。
(注意:最後可能需要重啟IIS伺服器,檢查一下ISAPI過濾器中Rewrite是否已經載入--綠色的向上箭頭。另外,如果是NTFS文件系統,ISAPI_Rewrite的安裝目錄需要添加網站用戶或everyone的寫許可權!)
7、如何增加一個二級域名?
第一步:將二級域名綁定到主機(ip)上。
第二步:修改/etc/httpd/conf/http.conf文件,在文件末尾添加如下配置信息:
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/etc/httpd/conf/vhost.map
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
第三步:添加配置主機信息文件(注意http.conf中的主機配置文件位置)
#vi /etc/httpd/conf/vhost.map
www.phpddt.com /var/www/html
blog.phpddt.com /var/www/blog
好了,重啟apache,你可以放入文件到blog文件夾做測試,另外,二級域名解析需要一段時間,請耐心等待。
8、求一個url_rewrite的正則表達式(用於二級域名跳轉)
正則:
/mail\.(\w+\.\w{3})/is
替換為:
www.\1:6080
用php程序測試專:
$str = 'mail.zhoubish.com';
$pattern = '/mail\.(\w+\.\w{3})/is';
$str = preg_replace($pattern, 'www.\1:6080', $str);
echo $str;// 你想要的屬