apache+php完美解決301重定向的兩種方法
更新時間:2011年06月08日 00:11:49 作者:
301重定向真是個好方法啊。前一篇文章Gevin也說過,本博客不幸被換域名了。域名一換,以前辛苦做博客的成果也就報廢了,網(wǎng)上的相關(guān)鏈接也打不開了,搜索引擎的收錄也杯具了
幸好有301重定向能有效解決這樣的問題。正如月光博客這篇文章中說的,
301重定向可促進(jìn)搜索引擎優(yōu)化效果
從搜索引擎優(yōu)化角度出發(fā),301重定向是網(wǎng)址重定向最為可行的一種辦法。當(dāng)網(wǎng)站的域名發(fā)生變更后,搜索引擎只對新網(wǎng)址進(jìn)行索引,同時又會把舊地址下原有的外部鏈接如數(shù)轉(zhuǎn)移到新地址下,從而不會讓網(wǎng)站的排名因為網(wǎng)址變更而收到絲毫影響。同樣,在使用301永久性重定向命令讓多個域名指向網(wǎng)站主域時,亦不會對網(wǎng)站的排名產(chǎn)生任何負(fù)面影響。
關(guān)于301重定向的更多內(nèi)容,大家不妨Google一下。本文只介紹實現(xiàn)方法啦!
301重定向的實現(xiàn),我以前也寫過一篇相關(guān)的文章,但這篇文章的解決方法比較簡單,只能實現(xiàn)主頁的跳轉(zhuǎn),本文介紹的這兩種方法,可以完美實現(xiàn)301重定向。
方法1:修改.htaccess文件
代碼如下:
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} blog.iflyhigher.tk$ [NC]
RewriteRule ^(.*)$ http://blog.jb51.net/$1 [R=301,L]
RewriteCond %{HTTP_HOST} iflyhigher.tk$ [NC]
RewriteRule ^(.*)$ http://jb51.net/$1 [R=301,L]
RewriteCond %{HTTP_HOST} moiya.tk$ [NC]
RewriteRule ^(.*)$ http://jb51.net/$1 [R=301,L]
</ifmodule>
本博需要對三個域名進(jìn)行重定向,所以寫的比較多,關(guān)鍵代碼就是2句話
RewriteCond %{HTTP_HOST} blog.iflyhigher.tk$ [NC]
RewriteRule ^(.*)$ http://blog.jb51.net/$1 [R=301,L]
紅色的域名是需要被重定向的舊域名,綠色的是現(xiàn)在網(wǎng)站的域名。
方法2:使用PHP的重定向代碼
新建一個index.php文件,然后參考下面代碼按自己的重定向要求做簡單修改:
<?php
$the_host = $_SERVER['HTTP_HOST'];
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
switch ($the_host)
{
case "www.iflyhigher.tk":
case "iflyhigher.tk":
$location = "Location: http://jb51.net" . $request_uri;
break;
case "blog.iflyhigher.tk":
$location = "Location: http://blog.jb51.net" . $request_uri;
break;
case "www.moiya.tk":
case "moiya.tk":
$location = "Location: http://jb51.net";
break;
default:
$location = "Location: http://jb51.net";
break;
}
header('HTTP/1.1 301 Moved Permanently');
header($location);
exit();
?>
如果只要對一個域名進(jìn)行重定向,可以把代碼簡化成下面的形式:
<?php
$the_host = $_SERVER['HTTP_HOST'];//取得進(jìn)入所輸入的域名
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判斷后面的請求部分
if($the_host !== 'jb51.net')//jb51.net是我現(xiàn)在的域名
{
header('HTTP/1.1 301 Moved Permanently');//發(fā)出301頭部
header('Location: http://jb51.net'.$request_uri);//跳轉(zhuǎn)到我的新域名地址
exit();
}
?>
注意,最后的exit()函數(shù)是一定要寫的,我最初就沒有寫,結(jié)果只能重定向首頁,像http://blog.iflyhigher.tk/guestbook這樣的網(wǎng)頁,就無法進(jìn)行重定向。
最后,關(guān)于重定向的一些細(xì)節(jié)
由于要對三個域名進(jìn)行重定向,重定向前,我首先將這三個域名作為Addon Domain綁定到我的服務(wù)器上去,并讓這三個域名指向同一個文件夾,這樣,只要修改這一個文件夾中的.htaccess文件或者index.php文件就可以了。如果沒有.htaccess文件或者index.php文件,新建一個即可。
希望本文對需要進(jìn)行301重定向的朋友有幫助。
轉(zhuǎn)載請表明出處: Gevin的博客
301重定向可促進(jìn)搜索引擎優(yōu)化效果
從搜索引擎優(yōu)化角度出發(fā),301重定向是網(wǎng)址重定向最為可行的一種辦法。當(dāng)網(wǎng)站的域名發(fā)生變更后,搜索引擎只對新網(wǎng)址進(jìn)行索引,同時又會把舊地址下原有的外部鏈接如數(shù)轉(zhuǎn)移到新地址下,從而不會讓網(wǎng)站的排名因為網(wǎng)址變更而收到絲毫影響。同樣,在使用301永久性重定向命令讓多個域名指向網(wǎng)站主域時,亦不會對網(wǎng)站的排名產(chǎn)生任何負(fù)面影響。
關(guān)于301重定向的更多內(nèi)容,大家不妨Google一下。本文只介紹實現(xiàn)方法啦!
301重定向的實現(xiàn),我以前也寫過一篇相關(guān)的文章,但這篇文章的解決方法比較簡單,只能實現(xiàn)主頁的跳轉(zhuǎn),本文介紹的這兩種方法,可以完美實現(xiàn)301重定向。
方法1:修改.htaccess文件
代碼如下:
復(fù)制代碼 代碼如下:
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} blog.iflyhigher.tk$ [NC]
RewriteRule ^(.*)$ http://blog.jb51.net/$1 [R=301,L]
RewriteCond %{HTTP_HOST} iflyhigher.tk$ [NC]
RewriteRule ^(.*)$ http://jb51.net/$1 [R=301,L]
RewriteCond %{HTTP_HOST} moiya.tk$ [NC]
RewriteRule ^(.*)$ http://jb51.net/$1 [R=301,L]
</ifmodule>
本博需要對三個域名進(jìn)行重定向,所以寫的比較多,關(guān)鍵代碼就是2句話
復(fù)制代碼 代碼如下:
RewriteCond %{HTTP_HOST} blog.iflyhigher.tk$ [NC]
RewriteRule ^(.*)$ http://blog.jb51.net/$1 [R=301,L]
紅色的域名是需要被重定向的舊域名,綠色的是現(xiàn)在網(wǎng)站的域名。
方法2:使用PHP的重定向代碼
新建一個index.php文件,然后參考下面代碼按自己的重定向要求做簡單修改:
復(fù)制代碼 代碼如下:
<?php
$the_host = $_SERVER['HTTP_HOST'];
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
switch ($the_host)
{
case "www.iflyhigher.tk":
case "iflyhigher.tk":
$location = "Location: http://jb51.net" . $request_uri;
break;
case "blog.iflyhigher.tk":
$location = "Location: http://blog.jb51.net" . $request_uri;
break;
case "www.moiya.tk":
case "moiya.tk":
$location = "Location: http://jb51.net";
break;
default:
$location = "Location: http://jb51.net";
break;
}
header('HTTP/1.1 301 Moved Permanently');
header($location);
exit();
?>
如果只要對一個域名進(jìn)行重定向,可以把代碼簡化成下面的形式:
復(fù)制代碼 代碼如下:
<?php
$the_host = $_SERVER['HTTP_HOST'];//取得進(jìn)入所輸入的域名
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判斷后面的請求部分
if($the_host !== 'jb51.net')//jb51.net是我現(xiàn)在的域名
{
header('HTTP/1.1 301 Moved Permanently');//發(fā)出301頭部
header('Location: http://jb51.net'.$request_uri);//跳轉(zhuǎn)到我的新域名地址
exit();
}
?>
注意,最后的exit()函數(shù)是一定要寫的,我最初就沒有寫,結(jié)果只能重定向首頁,像http://blog.iflyhigher.tk/guestbook這樣的網(wǎng)頁,就無法進(jìn)行重定向。
最后,關(guān)于重定向的一些細(xì)節(jié)
由于要對三個域名進(jìn)行重定向,重定向前,我首先將這三個域名作為Addon Domain綁定到我的服務(wù)器上去,并讓這三個域名指向同一個文件夾,這樣,只要修改這一個文件夾中的.htaccess文件或者index.php文件就可以了。如果沒有.htaccess文件或者index.php文件,新建一個即可。
希望本文對需要進(jìn)行301重定向的朋友有幫助。
轉(zhuǎn)載請表明出處: Gevin的博客
您可能感興趣的文章:
- Apache實現(xiàn)禁止中文瀏覽器訪問與301重定向的方法
- apache將不帶www域名301重定向到帶www的域名的配置方法
- windows中apache 301頁面跳轉(zhuǎn)實現(xiàn)方法
- Apache Rewrite實現(xiàn)URL的301跳轉(zhuǎn)和域名跳轉(zhuǎn)
- 301重定向代碼合集(iis,asp,php,asp.net,apache)
- Apache中301重定向的配置代碼
- 完美解決IIS和APACHE的301重定向(帶參數(shù))
- 解析網(wǎng)站301重定向的實現(xiàn)方法,包括iis,apache,asp,php的方法
- Apache的Rewrite設(shè)置多域名301跳轉(zhuǎn)到主域名的方法
相關(guān)文章
PHP7安裝Redis擴(kuò)展教程【Linux與Windows平臺】
這篇文章主要介紹了PHP7安裝Redis擴(kuò)展的方法,簡單分析了Linux與Windows平臺Redis擴(kuò)展的安裝方法,并提供了一個實例進(jìn)一步分析了php操作Redis的相關(guān)技巧,需要的朋友可以參考下2016-09-09

PHP定時自動生成靜態(tài)HTML的實現(xiàn)代碼
為了提高網(wǎng)站的訪問速度,我們往往采用生成靜態(tài)的方式來實現(xiàn),這樣確實把網(wǎng)站的訪問速度提高了非常多.
2010-06-06 ![PHP錯誤WARNING: SESSION_START() [FUNCTION.SESSION-START]解決方法](http://img.jbzj.com/images/xgimg/bcimg7.png)
PHP錯誤WARNING: SESSION_START() [FUNCTION.SESSION-START]解決方法
這篇文章主要介紹了PHP錯誤WARNING: SESSION_START() [FUNCTION.SESSION-START]解決方法,需要的朋友可以參考下
2014-05-05