2013-04-18 2 views
0

내가 URL이URL 재 작성 및 robots.txt에

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

이전에 친화적 인 즉, 검색 엔진 최적화 만든, 위의 페이지의 URL은

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

지금 구글은 여전히 ​​검색에서 두 번째 URL을 보여주고 있었다 결과. 제 질문은 을 robots.txt에 허용하지 않으면 Google이 해당 페이지의 크롤링을 중지합니까, 아니면 새 URL 인 mydomain.com/topic/title-of-page을 계속 크롤링합니까?

도움을 주셔서 감사합니다. URL의 공간에 대한 죄송합니다 그래서 내가 당신은 바로이 문제를 해결하는 것이 좋습니다 그들에게

+1

당신은 301 리디렉션 (임시 리디렉션)을 만들 수 있습니다 또는'$ _GET [ 'ID']'설정되어 있으면 말할 수와 유효한 ID는 달리 404 2분의 301을 줄 경우 302 (영구 리디렉션) 나는 당신의 SEO에 대한 대처법이 어떻게 다시 쓰이는지 모르지만 그것은 당신에게 시작을 제공 할 것입니다. – Class

답변

0

를 게시 할 수 없습니다. SEO와 관련하여 사이트에 중복 된 콘텐츠 문제가있을 것입니다.

robots.txt 파일이 추가, 귀하의 사이트에서 검색 엔진 트래픽의 절반을 잘라 :

User-agent: * 
Disallow: /search.php 

검색 엔진의 방법 것도 이전 링크를 채굴하지 않습니다. 검색 결과에 대해 캐시 된 상태 일 수 있습니다. 301 페이지가 리디렉션되어 제공되는 각 페이지를 처리해야하므로 처벌 대상이 아닙니다. 그러면 캐시를 업데이트하라는 메시지가 나타납니다.

또한 서버의 적절한 URL에 대한 모든 것을 포함하는 sitemap.xml 파일을 우선 순위에 따라 추가 할 수 있습니다.

DB에 새 경로가 저장되어 있다고 가정하면 search.php과 같이해야합니다. 그렇게하면 SEO에 대한 URL을 유지할 수 있습니다. 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]