2013-04-18 61 views
0

我做了網址搜索引擎友好即URL重寫和robots.txt的

http://mydomain.com/topic/title-of-page 

此前,上述頁面的URL是

http://mydomain.com/search?id=6567889 

現在,谷歌仍然顯示在搜索第二網址結果。我的問題是,如果我在robots.txt不允許/search,Google會停止抓取該網頁,還是會抓取mydomain.com/topic/title-of-page即新網址?

非常感謝您的幫助。對不起,在URL中的空格作爲SO不會讓我張貼

勒布

+1

你可能要創建一個301重定向(臨時重定向)或302(永久重定向)如果讓說,如果'$ _GET [「身份證」]'設置,是一個有效的身份證給二分之三百零一另有404 。我不知道你如何處理搜索引擎優化重寫,但這應該給你一個開始。 – Class

回答

0

你要解決這個問題的時候了。在搜索引擎優化方面,網站上會出現重複的內容問題。

爲了削減一半的搜索引擎的流量從您的網站,將它添加到您的robots.txt文件:

User-agent: * 
Disallow: /search.php 

沒有一個搜索引擎的這種方式將挖掘舊的鏈接。他們可能仍然會緩存搜索結果。這就是說,你需要處理他們與301重定向服務的每一頁,所以你不會受到處罰。這會告訴他們更新緩存。

此外,您需要添加一個sitemap.xml文件,該文件包含所有服務器上正確的URL,並按優先級順序排列。

假設你有新的路徑存儲在數據庫中,你需要這樣做到search.php。這樣你可以保留你的網址的搜索引擎優化。 301 is a Permanent Redirect.

if(preg_match('!^/search!',$_SERVER['REQUEST_URI'])){ 
    $tempID = $_GET['id']; 
    $tempID = mysqli_real_escape_string($tempID); 

    $query = "select count(*) from table where id=$tempID"; 

    $count = mysqli_result(mysqli_query($db_link,$query),0); 

if($count==1){ 

$query2 = "select correctPath from table where id=$tempID"; 

$correctPath = mysqli_result(mysqli_query($db_link,$query2),0); 
    header("HTTP/1.1 301 Moved Permanently"); 
    header("Location: $correctPath"); 
    exit(); 
    } else { 
    //non-existent ID 
    header("HTTP/1.1 301 Moved Permanently"); 
    header("Location: /"); 
    exit(); 
    } 
} 

否則,你可以用您正在使用的構建路徑的功能,第二個查詢。

您可以像這樣爲每個條目添加一些東西到.htaccess文件,但它不是未來的證明,列表越大,處理的時間越長(更多的服務器開銷)。

RewriteEngine On 
RewriteRule ^search\.php\?id=1 /page1_new_path/ [L,R=301] 
RewriteRule ^search\.php\?id=2 /page2_new_path/ [L,R=301]