iis ISAPI Rewrite 301重定向,非www到www域名下

時間:2013-01-23 12:00 來源:螞蟻網絡  作者:螞蟻網絡 點擊:次
大家都知道,有時訪問一個網站,帶www和不帶www都可以訪問,但是地址上顯示的網址是不一樣的,在百度收錄中也是不一樣的,比如:在你注冊一個域名時www.umomig.com.cn 會帶一個e球彩ef进球数 www.umomig.com.cn的域名。一般www.umomig.com.cn是主域名,但是網絡上的域名都是帶www的,e球彩ef进球数。再比如有時有搜索時發現,

這是帶www

這下是不帶www的

所以為了避免域名分散到兩個域名,必須作301重定把權重集中到一個域名上,一般是非www重定向到帶www域名下,這上可以給客戶體驗上感覺到友情,也有利于域名權重的集中和排名。在說301重定向之前先來了解下什么是301重定向。

301永久重定向的概念
頁面永久性移走(301重定向)是一種非常重要的“自動轉向”技術。網址重定向最為可行的一種辦法。當用戶或搜索引擎向網站服務器發出瀏覽請求時,服務器返回的HTTP數據流中頭信息(header)中的狀態碼的一種,表示本網頁永久性轉移到另一個地址。

什么是301永久重定向
301永久重定向:這是SEO中的一個基礎名詞,在URL規范化中會用到,也許大家都知道這個名詞,但是由于應用的不是非常頻繁,導致很多專業做SEO的朋友都不是很熟悉301永久重定向的具體操作方法,今天我就講解下301永久重定向的理論,以及實際的操作方法

301永久重向的作用
301永久重定向是所有的重定向方法中唯一符合搜索引擎規則的重定向方法,其他的重定向還包括302暫時重定向和JS跳轉等,這些方式都容易導致URL不規范問題的產生。所以說如果你有多個域名都希望可以讓他們訪問同一個網站,那就只能將其中一個做為主域名,剩下的其他域名做301永久重定向到這個主域名,只有這樣才可以完美的讓多個域名都訪問一個站點,不會產生重復收錄,導致網站被懲罰的現象。


下面有兩個方法來做301重定向:

方法一:IIS 301重定向

1.新建一個站點,對應目錄如E:\wwwroot\301web。該目錄下只需要1個文件,即index.html或者加個404.htm。綁定要跳轉的域名,如圖:
www和不帶www處理:IIS下301永久重定向設置方法

2.在IIS中選中剛才我們建立的站點,右鍵,屬性,主目錄,選擇重定向到,輸入網址如://www.umomig.com.cn,同時注意選中下面的資源的永久重定向選項。如下圖:

www和不帶www處理:IIS下301永久重定向設置方法

3.這樣就完成了,將www.umomig.com.cn這個域名301重定向到e球彩ef进球数 www.umomig.com.cn的工作。
注意只是第3個 打勾。
好了,如果只是想把不帶www的轉到帶www的或者其他沒有用過的域名轉到正在使用的域名,這樣就可以了。但是如果你要的域名已經做過網站,想要把權重傳遞給新網站,可以參考下面這個方法:

www和不帶www處理:IIS下301永久重定向設置方法

方法二:IIS 301轉向可由ISAPI Rewrite實現
如果虛擬主機是windows主機,IIS并不支持.htaccess文件,百度搜索引擎又不支持首選域設置,這時只能將一個域名301重定向到另外一個域名。那么在IIS下如何實現301重定向?其實國內很多Windows 虛擬主機空間都支持ISAPI篩選器,可以通過ISAPI Rewrite 來實現IIS下的301轉向(或叫301重定向, 301跳轉)。

ISAPI Rewrite 是什么
ISAPI Rewrite 是在IIS下為實現類似Apache mod_rewrite功能的第三方Rewrite組件。ISAPI是Internet Server Application Program Interface的縮寫,意為Internet 服務應用程序接口,是基于正則表達式的。Helicon tech 的ISAPI Rewrite 組件有免費Lite版本以及商業版,免費版只支持全局的httpd.conf 配置,商業版支持用戶自定義httpd.ini文件,支持目錄和站點級的類似.htaccess的配置。ISAPI Rewrite算是一個powerful URL處理引擎,現在最新版本是3.0。

1. 將不帶www的頂級域名301重定向到帶www的域名
 
# ISAPI_Rewrite 2.x 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond Host: ^farlee.info$
RewriteRule (.*) //www.farlee.info$1 [I,RP]
 
# ISAPI_Rewrite 3.0 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond %{HTTP:Host} ^farlee.info$
RewriteRule (.*) //www.farlee.info$1 [NC,R=301]
 
2. 不同域名之間的301轉向
 
# ISAPI_Rewrite 2.x 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond %{HTTP:Host} ^isapirewrite.com$
RewriteRule (.*) //www.farlee.info$1 [NC,R=301]
 
# ISAPI_Rewrite 3.0 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond %{HTTP:Host} ^www.isapirewrite.com$
RewriteRule (.*) //www.farlee.info$1 [NC,R=301]
 
3. 將頁面301重定向到另外一個頁面
 
# ISAPI_Rewrite 2.x 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^/oldpage.html$ //farlee.info/newpage.html[I,O,RP,L]
 
# ISAPI_Rewrite 3.0 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^/oldpage.html$ //farlee.info/newpage.html[NC,L,R=301,O]
 
注意:ISAPI_Rewrite 1.3是現在國內應用得比較多的一個老版本,它可用于url 重寫,但并不適合用來實現真正的301重定向功能。建議下載最新的ISAPI_Rewrite 3.0 版本。在 url轉發和301轉向(重定向跳轉)的實現 這篇文章介紹了一段ISAPI_Rewrite 1.3 的重定向代碼,這段代碼在IIS下對域名重定向雖然能夠順利跳轉,但是返回的仍然是302 HTTP header,而不是301 狀態碼。而且該段代碼用于301重定向后,在blog中的其他頁面都會跳轉到首頁。
 
這樣設置以后,你的windows iis 也能實現301重定向了,不管是Google 和百度搜索引擎都不會有因為帶有www和不帶www的域名而產生重復頁面問題了。

Win虛擬主機只要支持偽靜態的,都可以使用以下這個代碼,現在國內幾乎所有的虛擬主機都支持偽靜態了。新建一個文本,把一下的代碼復制進去,然后保存名字為“httpd.ini”,上傳到網站的根目錄即可。
 
[ISAPI_Rewrite]
 
# 3600 = 1 hour
 
CacheClockRate 3600
 
RepeatLimit 32
 
RewriteCond Host: ^seo43\.com$
 
RewriteRule (.*) http\://www\.seo43\.com$1 [I,RP]
 
Linux虛擬主機設置更簡單,如果網站服務器是Apache,在.htaccess文件開始處加入一下規則(如果沒權限修改,請聯系服務提供商協助修改):
 
RewriteCond %{http_host} ^seo43.com [NC]
 
RewriteRule ^(.*)$ //www.seo43.com/$1 [R=301,L]
 
PHP 301 重定向代碼
 
301重定向也可以在php文件中通過加入php header來實現,代碼如下:
 
<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: //farlee.info/newpage.html”);
exit();
?>
 
ASP 301 重定向代碼
 
<%@ Language=VBScript %>
<%
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”, //farlee.info
%>
 
ASP.NET 301 重定向代碼
 
<script language=”c#” runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(“Location”,//farlee.info);
}
</script>
 
ColdFusion 301 重定向代碼
 
<.cfheader statuscode=”301″ statustext=”Moved permanently”>
<.cfheader name=”Location” value=”//farlee.info/newpage.html”>
 
CGI Perl下的301轉向代碼
 
$q = new CGI;
print $q->redirect(“//farlee.info”);
 
JSP下的301轉向代碼
 
<%
response.setStatus(301);
response.setHeader( “Location”, “//farlee.info” );
response.setHeader( “Connection”, “close” );
%>

頂一下
(2)
100%
踩一下
(0)
0%
友情合作: