對於一個不懂程序的SEOER來作,更改代碼方面是一件很是苦難的事情,當咱們遇到301轉向以及404頁面的製做問題時,常常會困惱咱們,這裏我提供一個htaccess在線生成工具,這裏有404頁面連接生成、301轉向生成以及htaccess常規設置問題,下面來講一下具體的說明以及使用方法。php
htaccess文件是Apache服務器中的一個配置文件,它負責相關目錄下的網頁配置。經過htaccess文件,能夠幫咱們實現:網頁301重定向、自定義404錯誤頁面、改變文件擴展名、容許/阻止特定的用戶或者目錄的訪問、禁止目錄列表、配置默認文檔等功能。html
通常來講,htaccess文件須要放在網站的根目錄下才能控制整個站點,而且在Linux系統中,須要把其權限設置爲644以提升安全性。國內不少主機提供商都經過必定技術手段禁用了該文件,可是國外大多數空間商都是支持該文件的,能夠極大的擴展虛擬主機的功能正則表達式
.htaccess文件中的配置指令做用於.htaccess文件所在的目錄及其全部子目錄,可是很重要的、須要注意的是,其上級目錄也可能會有.htaccess文件,而指令是按查找順序依次生效的,因此一個特定目錄下的.htaccess文件中的指令可能會覆蓋其上級目錄中的.htaccess文件中的指令,即子目錄中的指令會覆蓋父目錄或者主配置文件中的指令。安全
在實際應用中,用戶最經常使用其重定向功能與僞靜態功能,好比把一個PHP的動態頁面定義成一個HTML後綴的靜態頁面URL形式,這種形式在用戶端徹底沒法看出來,所以,僞靜態也是SEO的一種重要手段。常見的程序好比PHPwind、DedeCMS、Wordpress等都支持自動僞靜態。服務器
本文件應該由UTF-8編碼,或者不添加BOM的Windows編碼也能夠。所以,不能使用Windows系統自帶的記事本程序來編寫Htaccess文件,常見的Notepad2等軟件能夠用來編寫該文件。編輯器
若是手頭沒有編輯工具或者不方便下載,能夠經過本站的「.htaccess製做生成編輯器」來自動處理這個文件。咱們已經徹底修正了這套程序中原來存在的不少錯誤,而且增長了不少使用的功能(好比直接下載),您能夠放心使用。但因爲服務器系統的不肯定性,咱們強烈建議您在上傳以前,將原來的文件備份。本站不可能因使用這套程序形成的損失承擔任何責任。工具
在不少狀況下,網站都須要進行301或302重定向,其中一個爲永久重定向,一個爲臨時重定向。好比網站整個更換了域名,好比網站結構或目錄發生了移動,好比須要將某個域名上的文件遷移到另外的域上等等。網站
有時候這種重定向對SEO或者PR值的傳遞是很是有效的。通常咱們有幾種途徑製做一個htaccess文件,好比本身手動編輯,好處是很是靈活、功能強大,但壞處是很容易出錯,咱們強烈建議用本站的工具自動生成這個文件;另外一種途徑是經過空間裏的控制面板進行自動編輯,這種方法比較死板,但不會由於人爲緣由出錯,除非設置錯了。ui
好比CPanel控制面板中,在Domain>Redirects裏面,直接選擇相應的選項便可。下面咱們來詳細討論一下如何手動編輯這個htaccess文件:搜索引擎
務必注意:在編輯以前請備份原來的htaccess文件,以避免形成損失。
一、出於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的域名中去
二、若是須要將域名從www.kuphp.net跳轉到kuphp.net,則可使用一下代碼:
RewriteEngine On RewriteCond %{HTTP_HOST} !^kuphp.net$ [NC]
RewriteRule ^(.*)$ http://ssffx.com/$1 [L,R=301]
三、若是須要變動域名,即將老域名換成全新的域名,可是網頁內容與結構不變,則可使用如下代碼來實現:
RewriteEngine On
RewriteBase / RewriteCond %{HTTP_HOST} !ssffx.com$ [NC]
RewriteRule ^(.*)$ http://ssffx.com/$1 [L,R=301]
若是是帶WWW的域名間跳轉,則以此類推,在域名前加上WWW便可。
通常來講,以上這些是網站建設過程當中很是經常使用的幾行代碼。這些代碼對Google很是適用,Google很快就會按照你的意願將收錄的網址改變過來,而且若是換了域名,還能保留之前域名的PR值。
估計全部類型的頁面裏,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文件能夠很好的進行站點僞靜態,而且造成的目標地址與真正的靜態頁面幾乎如出一轍,如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
此外,還有不少種不一樣的規則,若是想制定出適用於本身站點的僞靜態規則,必須熟悉網站結構和正則表達式。