[SEO 技術分享] htaccess 301 Redirect 教學

先前我們在靜態網頁如何正確設定301轉址提過各種301永久轉址語法,這次要教大家使用.htaccess來進行301 Redirect。
如何建立.htaccess?
首先您的server必須是apache系統,通常您使用PHP空間的話,那就是使用apache。在網頁的根目錄下,通常可以找到一個.htaccess的檔案,若沒有則需自已建立一個。由於在Windows中無法建立以點為開頭的檔案,故我們先建立一個htaccess.txt檔,上傳至FTP後再修改檔名為.htaccess即可。(若上傳至FTP後找不到檔案,須在FTP軟體設定強制顯示隱藏檔案)


htaccess 301轉址語法基礎介紹
在網站根目錄建立好.htaccess後,接著用任何notepad軟體開啟就可以直接寫入語法。
以下為301 redirect的各種運用方式:
# 進入到您的網域後即301 redirect到其它網域
Redirect 301 / http://example.com/
# 進入到old.html後即301 redirect到其它網域的子目錄下
Redirect /old.html http://example.com/newdirectory/
# 進入舊的網址即301 redirect至新的網址
Redirect /olddirectory/oldfile.html http://example.com/newdirectory/newfile.html
htaccess 301 轉址的進階SEO用法
一般網站都會有網址不一致的情怳,什麼是網址不一致?即輸入www.domain.com或www.domain.com/index.php或是輸入沒有www的網址都可進到首頁,一般人可能感覺不出有影響,但對搜尋引擎來說只要網址不同就是不同頁面,因此我們看似差不多的網址,其實搜尋引擎並不這麼認為。
所以我們要教大家如何維持網址的一致性,讓從index.php進來的或是從沒有www進來的統一都用301永久轉址的方式轉到www.domain.com
# 以下兩行不可省略
Options +FollowSymLinks
RewriteEngine on
# 將index.php 轉到 /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.php\ HTTP/
RewriteRule ^(.*)index\.php$ /$1 [R=301,L]
# 將沒有www 轉到有 www
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]