對於一個不懂程序的SEOER來做,更改代碼方面是一件非常苦難的事情,當我們遇到301轉向以及404頁面的制作問題時,經常會困惱我們,這里我提供一個htaccess在線生成工具,這里有404頁面鏈接生成、301轉向生成以及htaccess常規設置問題,下面來說一下具體的說明以及使用方法。
htaccess是什么文件
htaccess文件是Apache服務器中的一個配置文件,它負責相關目錄下的網頁配置。通過htaccess文件,可以幫我們實現:網頁301重定向、自定義404錯誤頁面、改變文件擴展名、允許/阻止特定的用戶或者目錄的訪問、禁止目錄列表、配置默認文檔等功能。
一般來說,htaccess文件需要放在網站的根目錄下才能控制整個站點,並且在Linux系統中,需要把其權限設置為644以提高安全性。國內很多主機提供商都通過一定技術手段禁用了該文件,但是國外大多數空間商都是支持該文件的,可以極大的擴展虛擬主機的功能
.htaccess文件中的配置指令作用於.htaccess文件所在的目錄及其所有子目錄,但是很重要的、需要注意的是,其上級目錄也可能會有.htaccess文件,而指令是按查找順序依次生效的,所以一個特定目錄下的.htaccess文件中的指令可能會覆蓋其上級目錄中的.htaccess文件中的指令,即子目錄中的指令會覆蓋父目錄或者主配置文件中的指令。
在實際應用中,用戶最常用其重定向功能與偽靜態功能,比如把一個PHP的動態頁面定義成一個HTML后綴的靜態頁面URL形式,這種形式在用戶端完全無法看出來,因此,偽靜態也是SEO的一種重要手段。常見的程序比如PHPwind、DedeCMS、Wordpress等都支持自動偽靜態。
本文件應該由UTF-8編碼,或者不添加BOM的Windows編碼也可以。因此,不能使用Windows系統自帶的記事本程序來編寫Htaccess文件,常見的Notepad2等軟件可以用來編寫該文件。
如果手頭沒有編輯工具或者不方便下載,可以通過本站的“.htaccess制作生成編輯器”來自動處理這個文件。我們已經完全修正了這套程序中原來存在的很多錯誤,並且增加了很多使用的功能(比如直接下載),您可以放心使用。但由於服務器系統的不確定性,我們強烈建議您在上傳之前,將原來的文件備份。本站不可能因使用這套程序造成的損失承擔任何責任。
通過htaccess實現301重定向
在很多情況下,網站都需要進行301或302重定向,其中一個為永久重定向,一個為臨時重定向。比如網站整個更換了域名,比如網站結構或目錄發生了移動,比如需要將某個域名上的文件遷移到另外的域上等等。
有時候這種重定向對SEO或者PR值的傳遞是非常有效的。一般我們有幾種途徑制作一個htaccess文件,比如自己手動編輯,好處是非常靈活、功能強大,但壞處是很容易出錯,我們強烈建議用本站的工具自動生成這個文件;另一種途徑是通過空間里的控制面板進行自動編輯,這種方法比較死板,但不會因為人為原因出錯,除非設置錯了。
比如CPanel控制面板中,在Domain>Redirects里面,直接選擇相應的選項即可。下面我們來詳細討論一下如何手動編輯這個htaccess文件:
務必注意:在編輯之前請備份原來的htaccess文件,以免造成損失。
1、出於SEO考慮,將kuphp.net重定向至www.kuphp.net。本站就使用了這種重定向的方法避免頁面權重分散。
一旦選擇了帶WWW的為主域名,今后就不要隨意更改,方法如下:
RewriteEngine On RewriteCond %{HTTP_HOST} !^www.kuphp.net$ [NC]
RewriteRule ^(.*)$ http://www.ssffx.com/$1 [L,R=301]
上面這一句話是從反面來寫的:如果域名不是帶WWW的,就統一301跳轉到帶WWW的域名中去
2、如果需要將域名從www.kuphp.net跳轉到kuphp.net,則可以使用一下代碼:
RewriteEngine On RewriteCond %{HTTP_HOST} !^kuphp.net$ [NC]
RewriteRule ^(.*)$ http://ssffx.com/$1 [L,R=301]
3、如果需要變更域名,即將老域名換成全新的域名,但是網頁內容與結構不變,則可以使用以下代碼來實現:
RewriteEngine On
RewriteBase / RewriteCond %{HTTP_HOST} !ssffx.com$ [NC]
RewriteRule ^(.*)$ http://ssffx.com/$1 [L,R=301]
如果是帶WWW的域名間跳轉,則以此類推,在域名前加上WWW即可。
一般來說,以上這些是網站建設過程中非常常用的幾行代碼。這些代碼對Google非常適用,Google很快就會按照你的意願將收錄的網址改變過來,並且如果換了域名,還能保留以前域名的PR值。
htaccess 404錯誤頁面的自定義
估計所有類型的頁面里,404錯誤頁面是見得最多的一個頁面了,冷不防出現個冰冷的404,用戶體驗非常差,也會給SEO帶來不好的影響。一個好的404錯誤頁面不僅可以引導用戶至正確的頁面,也會給人一種賞心悅目的感覺。另外,也可以通過301重定向來更好的解決該頁無法找到的問題。
如果網站建立不久,就出現了什么改版、換程序等等,會在搜索引擎中產生大量的無效頁面,如果不及時處理,很可能使你的站在搜索引擎中降低地位。眾所周知,在Windows IIS里面,可以直接通過管理工具自定義錯誤文檔,但這在Apache下如何實現呢?如果你用的是虛擬主機,無法自己定義,又該如何實現呢?
這個問題難不倒萬能的htaccess,通過htaccess定義404錯誤可謂是小菜一碟,並且其它的錯誤類別也可以依葫蘆畫瓢。
一般來說,有兩種方法可以自己定義404錯誤頁面,一種是通過空間控制面板,這種方法簡單易行;另一種是自己建立htaccess文件,寫入定義:
ErrorDocument 404 http://www.ssffx.com/404.html
該行代碼即定義404錯誤為404.html這個頁面。其中404為錯誤代碼,后面的網址為出現錯誤時需要返回的頁面。我們非常建議使用完整地址,這樣會減少出錯的幾率。另外,還有很多常用的其它錯誤代碼也可以自己定義,如:
400 - Bad request 錯誤的請求
401 - Authorization Required 需要認證
403 - Forbidden directory 禁止訪問
404 - Page not found 無法找到該頁
500 - Internal Server Error 內部服務器錯誤
按照以上的格式添加進去即可。如果按照以上方法出現錯誤,可能是文件保存編碼的問題。因此,我們建議您使用我們的工具來替您全自動完成這項工作,或者使用notepad2來編寫該htaccess文件。
htaccess 偽靜態的規則
利用htaccess文件可以很好的進行站點偽靜態,並且形成的目標地址與真正的靜態頁面幾乎一模一樣,如abc.html等,偽靜態可以非常好的結合SEO來提高站點的排名,並且也能給人一種穩定的印象。
由於偽靜態必須要完全根據不同的站點進行不同的設置,因此,我們僅能簡單介紹其原理,給出幾個常用程序的示例:
若要通過htaccess使用偽靜態,則必須空間商支持Rewrite模塊,該模塊負責URL的重寫。否則即便是設置好了,也無法使用,並且還有可能出現500錯誤。
下面是Discuz的偽靜態設置文本:
# 將 RewriteEngine 模式打開
RewriteEngine On
# Rewrite 系統規則請勿修改
RewriteRule ^archiver/((fid|tid)-[0-9]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1
以下是Phpwind的偽靜態設置文本:
RewriteEngine On RewriteBase / RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
RewriteRule ^(.*)simple/([a-z0-9\_]+\.html)$ $1/simple/index.php?$2
此外,還有很多種不同的規則,如果想制定出適用於自己站點的偽靜態規則,必須熟悉網站結構和正則表達式。