下面介紹幾種網頁重定向的方式。
-
301重定向
301 重定向也被稱為 永久性 重定向,一個網站如果做了 301 重定向,就代表這個網站的全部指標完全轉移到了重定向的頁面上。
-
什么情況下要重定向
1.url規范化
打開瀏覽器用url搜索百度,有的人喜歡用 www.baidu.com 搜索,有的人喜歡用 baidu.com 搜索。雖然倆個域名看上去一樣,其實不然,前者是二級域名,后者是一級域名。而且搜索引擎會把倆個域名分別收錄,這時就會造成網站的權重分散,這并不是我們想要的結果,這時就得用到 301 重定向。
讓我們看看百度是怎么做的,打開瀏覽器,在地址欄輸入:
www.baidu.com
和
baidu.com
我們會發現都會跳轉到:
打開 chrome 自帶的調試工具,我們看到,在輸入 baidu.com 時,頁面被重新定向到 www.baidu.com,這里的 302 為臨時性重新定向。
2.當網站更換程序時,需要做 301 重定向。
如果一個網站更換了程序,比如由php更換到asp,如果不做重新定向,搜索引擎中收錄的頁面就會變成 404 頁面。這時應該做一個重定向,從而更新搜索引擎收錄的頁面。
3.某些頁面過期或者鏈接無效時。
如果這些頁面還有訪問流量的話,應該做一個重定向。
-
Apache實現301重定向
開啟 Apache 重寫模塊
要想在 Apache 下實現 301 重定向,首先應該開啟Apache 的重寫模塊,在 Apahce 的配置文件 httpd.conf 中找到如下語句:
把前面的注釋 # 取消掉。
- 讓 Apache 支持 .htaccess 文件
然后為了讓 Apache 支持 .htaccess 文件,在 Apache 的配置文件 httpd.conf 中,找到
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
把其中的 AllowOverride None 改為 AllowOverride All,然后重啟 Apache,在網站的根目錄創建 .htaccess 文件。
- 讓 baidu.com 重定向到 www.baidu.com
在 .htaccess 文件中添加如下語句:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^baidu.com
RewriteRule ^(.*)$ http://www.baidu.com/$1 [NC,R=permanent,L]
R代表永久重定向,也可以用 301 或者 302 代替,L代表重寫規則終止。NC為忽略大小寫
- 讓 www.xxx.com 重定向到 www.baidu.com
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^www.xxx.com$ http://www.baidu.com [NC,R=301,L]
這里運用到了正則,可以參考正則的手冊。
-
HTML中的<meta>標簽
<meta http-equiv=“refresh” content=“10;url=http://www.baidu.com”>
由于搜索引擎可以抓取 HTML 內容,所以這種方式是比較推薦的。標簽中 content 屬性為延時跳轉的時間,一定要注意把延遲時間設定成至少 10 秒以上,不然搜索引擎視為作弊行為。
-
JS的幾種跳轉方式
-
地址欄跳轉
<script>
window.location.;
self.location
</script>
-
歷史記錄跳轉
<script>
window.history.back();
window.history.forward();
window.history.go();
</script>
搜索引擎是不會抓取 js 源碼的,所以要想避免網站權重轉移應該采用這種方式 。
-
PHP網頁重定向
PHP的網頁重定向要使用header函數。
<?php
header("location:http://www.baidu.com");