SEO – 知識家 提供SEO教學、SEO工具 帶您以深入淺出的方式認識 Search Engine Optimization 搜尋引擎最佳化
  • [301轉址] 靜態網頁如何正確設定 301轉址 (redirect)?

    html-301-redirect

    網路上有許多動態網頁執行301轉址(Redirect)的教學,卻少有靜態網頁(.html) 301轉址的文章,導致有些SEO初學者以為靜態頁面無法加入程式碼來設定301轉址,而沒辦法正確將舊網址的權重轉移到新網址上,因此我們要教大家如何讓靜態頁面也能使用301轉址。

    我們列出三個常見的靜態網頁301轉址狀況來說明:

    [301轉址常見狀況一]

    若是你的靜態網頁放置在Apache主機上,那麼可以透過在.htaccess文件中添加301轉址的語法進行轉址。

    .htaccess 301 redirect 語法:

    redirect 301 http://old-domain.com http://new-domain.com

    其中old-domain.com表示轉址前的網址,new-domain.com為轉址後的新網址。

    .htaccess一般存放網站根目錄中,若是沒有則須自行建立。由於在windows下無法建立以點開頭為副檔名,故可先建立htaccess.txt的文字檔並將301轉址的代碼貼上,上傳到FTP的網站根目錄後,再將檔名更換為.htaccess即可,權限建議設定為644。

    註:若Apache不支援.htacces 則須與你的主機商(web hosting)聯絡。

    [301轉址常見狀況二]

    若是你的靜態網頁放置在Windows主機上,則須從IIS中設定。

    iis設定301轉址步驟

    步驟:

    1. 在IIS面版下,在網站名稱上按右鍵點選"內容"
    2. 點選主目錄分頁,選擇"某個URL位址的重新導向"
    3. 導向到:後面的欄位填入新網址 http://new-domain.com
    4. 將"這個資源的永久重新導向"打勾
    5. 按下"確定"

    如此就完成了IIS上的301轉址,不需在網頁中加入任何程式。

    若網站放在虛擬主機,則須請你的主機商(web hosting)幫你設定。

    [301轉址常見狀況三]

    若Apache不支援.htaccess或使用Windos主機商無法幫你設定,那靜態頁面的轉址就只能透過在index.html添加meta refresh tag和標準連結元素 (canonical tag) 來達成301轉址。

    語法如下:

    <meta http-equiv="refresh" content="0; url=http://new-domain.com/" />

    <link rel="canonical" href="http://new-domain.com" />

    對SEO稍有研究的人或許對meta refresh的使用有些疑問,不會讓搜尋引擎誤判為spam嗎?其實只要正確的使用,並不用太擔心,因為我們不是故意製造一些用來取得排名的頁面再轉到不相干的網址,而且Yahoo對於meta refresh的看法相當於301轉址,但Google會視為302,故還須加上標準連結元素告訴搜尋引擎new-domain.com才是真正需要被索引的網址。

    最後再補充一個SEO小技巧

    若是你的空間支援PHP、ASP、ASP.NET等,那麼你大可將index.html改為index.php or index.asp,再置入各程式的301轉址語法來進行轉址。(如下)

    PHP 301 Redirect

    <?
    Header( "HTTP/1.1 301 Moved Permanently" );
    Header( "Location: http:// new-domain.com" );
    ?>

    ASP 301 Redirect

    <%@ Language=VBScript %>
    <%
    Response.Status="301 Moved Permanently"
    Response.AddHeader "Location","http://new-domain.com/"
    %>

    ASP.NET 301 Redirect

    <script runat="server">
    private void Page_Load(object sender, System.EventArgs e)
    {
    Response.Status = "301 Moved Permanently";
    Response.AddHeader("Location","http://www.new-url.com");
    }
    </script>

    JSP 301 Redirect

    <%
    response.setStatus(301);
    response.setHeader( "Location", "http://www.new-url.com/" );
    response.setHeader( "Connection", "close" );
    %>

    需注意的是此做法只適用於首頁,因為首頁可省略index.php,雖然將index.html改為php,但是內頁回首頁還是會連到http://domain.com/ ,且全站每頁的回首頁連結皆需設定為http://domain.com/ 才能維持網址的一致性。

    雖然最後這個方式不是標題所說的靜態網頁的301轉址,但也是解決靜態頁面轉址的一種方法不是嗎?(笑)

    設定好301轉址後,記得別忘了使用301轉址檢查工具測試看看有沒有成功唷^^

    本文章同步發表於awoo SEO知識網:http://www.awooseo.com/301-redirect.html

    相關文章:

    發佈於 四月 8, 2011 · 分類: SEO教學; 標籤: ,
    2 Comments

2 Responses to “[301轉址] 靜態網頁如何正確設定 301轉址 (redirect)?”

  1. 請問一下
    除了301轉址,還有別的轉址嗎?

  2. 還有另外三種轉址方式,但皆為暫時性轉址。
    302 redirect
    javascript redirect
    meta refresh redirect

我要回應

*

最新訊息

文章分類

統計

免費計數器