Apache下htaccess有關301重定向、404錯誤的設置
換域名(ming)(ming)了(le),以前域名(ming)(ming)的(de)收錄怎么辦?老(lao)域名(ming)(ming)的(de)權重(zhong)(zhong)如何轉(zhuan)移到新域名(ming)(ming)呢?百度搜(sou)索引(yin)擎優化手(shou)冊里面說(shuo)(shuo)的(de)是使(shi)用(yong)301永久重(zhong)(zhong)定(ding)向,那么如何靈活(huo)應用(yong)301重(zhong)(zhong)定(ding)向呢?下面就在(zai)站幫網說(shuo)(shuo)說(shuo)(shuo)apache服務器下使(shi)用(yong)htaccess來實現301永久重(zhong)(zhong)定(ding)向的(de)方法。
你是同(tong)一(yi)目(mu)錄下的網站,還是不同(tong)目(mu)錄下的網站,如果是同(tong)一(yi)目(mu)錄下的網站,就(jiu)必需要(yao)地址(zhi)判斷,以(yi)免出現“此(ci)網頁(ye)包含重定向循環;如何是不同(tong)目(mu)錄下的網站,就(jiu)可(ke)以(yi)直接(jie)弄轉向,也就(jiu)是所有來(lai)路(lu)域(yu)名(ming)都轉;如果兩域(yu)名(ming)在(zai)同(tong)一(yi)目(mu)錄,請把偽靜態規則放在(zai) 301的下面(mian),即(ji)先(xian)轉,再偽。
一、301 永久重定向:
1、所有鏈(lian)接重定(ding)向首(shou)頁: 可(ke)新建一(yi)個 index.php (兩站(zhan)不同目(mu)錄(lu))
<?php
header('Location://www.nicenic.com');
?>
只首頁重定(ding)向(xiang)(xiang),貼子等都不重定(ding)向(xiang)(xiang)、不變
RewriteEngine on
RewriteCond %{HTTP_HOST} ^szjicheng.cn$ [OR]
RewriteCond %{HTTP_HOST} ^szjicheng.cn$
RewriteRule ^/?$ "//szjicheng.cn" [R=301,L]
注:只首頁重定向(xiang),內頁、目錄(lu)不重定向(xiang),訪問還是原地址(zhi)。[OR] 是 “或” 也就是使用(yong)帶WWW和不帶WWW的都轉(zhuan),應該可以加(jia)很(hen)多(duo) [OR] 做條(tiao)件。注意, [OR]條件判斷,如(ru)果只(zhi)一個條件,請(qing)把(ba) [OR] 去(qu)掉。不然有可能出現: “此網頁包含重定向循環(huan)”。
2、首頁、貼子、目錄都重定向szjicheng.cn 的首頁、 或指定頁:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^szjicheng.cn$ [OR]
RewriteCond %{HTTP_HOST} ^www.szjicheng.cn$
RewriteRule ^(.*)$ //szjicheng.cn [R=301,L]
注:首頁、內頁、目錄都重定向到szjicheng.cn的首頁。
(以上為兩站(zhan)同(tong)(tong)一目錄下使(shi)(shi)用,如果網站(zhan)不同(tong)(tong)目錄,就不需要網址(zhi)判斷,直接使(shi)(shi)用最下一行)
3、www域名 轉 根域名 301。這(zhe)個是(shi)最常用(yong)的,首頁、貼子、目錄,所有的都(dou)同步重定向:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^nicenic.com$ [NC]
RewriteRule ^(.*)$ "//szjicheng.cn/$1" [R=301,L]
注(zhu):首頁、內頁、鏈(lian)接將都重定向到(dao)另一站的相同鏈(lian)接。
(以(yi)上(shang)為兩站(zhan)同(tong)一(yi)目(mu)錄(lu)下使(shi)用,如果網站(zhan)不同(tong)目(mu)錄(lu),就不需(xu)要網址判斷,直接(jie)使(shi)用最下一(yi)行)
4、A域名轉B域名,首頁、貼子、目錄(lu),所有的都(dou)同步(bu)重定向:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^nicenic.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.nicenic.com$
RewriteRule ^(.*)$ "//szjicheng.cn/$1" [R=301,L]
注:首(shou)頁、內(nei)頁、鏈接(jie)將都轉(zhuan)向到另一(yi)站的相同鏈接(jie)。
(以上為(wei)兩(liang)站同一目錄(lu)下(xia)使(shi)用(yong),如果網(wang)站不同目錄(lu),就不需要網(wang)址判(pan)斷(duan),直接使(shi)用(yong)最(zui)下(xia)一行)
5、如果只子(zi)目錄(lu)(lu)重定向,包括目錄(lu)(lu)下的(de)所有鏈接(jie),其它的(de)不重定向, 如:要把(ba) szjicheng.cn/bbs 下重定向到 szjicheng.cn 來,但szjicheng.cn不(bu)重定向。
(以上為兩(liang)站(zhan)同一目錄下使(shi)(shi)用,如果網站(zhan)不同目錄,就不需要網址判斷,直接使(shi)(shi)用最下一行。這個子(zi)目錄轉,判斷語可不用,直接(jie)使用最(zui)后一(yi)行,子(zi)目錄下(xia)的所有來路都轉)如果不(bu)需(xu)要(yao)貼子地(di)址(zhi)都重(zhong)定向,只把(ba)域名(ming)重(zhong)定向,那么,你只需(xu)用一首頁(ye)文件 index.php
內容為:(網(wang)(wang)址換成你要(yao)重(zhong)定向(xiang)到(dao)目標網(wang)(wang)址)
<?php
$url="".$_SERVER["REQUEST_URI"];
header("HTTP/1.1 301 Moved Permanently");
header("location://szjicheng.cn");
?>
這方法為域名(ming)直接跳轉(zhuan),如需跳轉(zhuan)到子目錄,直接在網址(zhi)加(jia)上子目錄即可。 (兩站(zhan)不同目錄),htaccess技(ji)巧 在 Linux 系(xi)統,支持 htaccess 規則下使用。
注(zhu):301轉向.htaccess 的規則在(zai) Linux 系統(tong)(tong) Apache 上測試通過,但是在(zai) Linux 系統(tong)(tong) LiteSpeed 上出現 500錯誤(wu)等。或許不兼容(rong)。
二、建一個404.htm 文件傳根目錄
自動義 404、403 錯誤,在.htaccess里面添加(jia)
ErrorDocument 404 /404.htm
ErrorDocument 403 /404.htm
注:可自己設定(ding)無(wu)法找到(dao)文件轉到(dao)哪(na)個(ge)頁 后面(mian)的404.htm 可自行改。
三、.htaccess 設置默認首頁:
DirectoryIndex index.html index.php default.htm
注(zhu):有(you)些(xie)空間,默認首頁先(xian)后(hou)不(bu)同,自己想要把(ba)哪個先(xian)訪問(wen),可用此(ci)設置
四、.htaccess 禁止IP訪問網站:
Order Allow,Deny
Deny from 582.46.2.67
Allow from all
注(zhu):禁止 582.46.2.67 這個IP訪問你的站(zhan)點,可自(zi)己測試下(xia)禁止自(zi)己IP。可(ke)應(ying)該在,如(ru)遇到服務器攻(gong)擊,查出這個(ge)IP,禁止這個(ge)IP訪問。
五、.htaccess 禁止圖片、文件盜鏈:
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !zhanhelp.com [NC]
RewriteRule .(gif|jpg|rar|zip)$ //zhanhelp.com/logo.gif [R,L]
注:這部分是(shi)(shi)判斷是(shi)(shi)否盜鏈, 即(ji)不是(shi)(shi)直接(jie)輸(shu)入網(wang)址,又(you)不是(shi)(shi)zhanhelp.com 網(wang)站(zhan)上訪問(wen)的(de),那么就會 直接顯示 logo.gif 圖片 可自定義(yi)如 rar zip 盜鏈。
