2011-12-06 3 views
0

안녕하세요 저는 거미를 만들려고합니다. 링크를 구축하는 동안 루트 도메인 링크 또는 하위 도메인 링크인지 확인해야하는 문제가 발생했습니다. 예를 들어Curl 도메인이 루트인지 확인하십시오.

:

http://www.domain.com or 
http://domain.com 
http://domain.com/index.php 
http://domain.com/default.php 
http://domain.com/index.html 
http://domain.com/default.html 

. . 등 은 모두 같습니다.

그래서 실제로 URL 문자열을 입력으로 받아서 사이트의 루트 또는 홈페이지에 있는지 확인해야합니다.

+0

기술적으로 www.domain.com과 domain.com은 동일하지 않습니다. www는 하위 도메인이므로 hello.domain.com과 마찬가지로 대부분의 사람들이 항상 domain.com을 가리키는 하위 도메인입니다. – Jakub

+1

모든 사이트에서이 규칙을 사용한다고 가정하지 마십시오. 이러한 각 URL마다 다른 사이트를 가질 수 있습니다. 내가 너라면, 나는 내용을 해시하고 그것을 사용하여 이미로드 한 것에 비교한다. – Brad

+0

내용을 비교해야합니까? www.domain.com이 domain.com의 하위 도메인이 아닌가? –

답변

0

주석에서 언급했듯이, 이것은 실제로 스파이더를 코딩하는 기본적인 부분입니다. 범용 스파이더를 코딩하려는 경우 URL을 해결하고 동일한 콘텐츠와 어떤 방식으로 (리디렉션을 통해 또는 단순히 중복 된 콘텐츠를 통해) 가리키고 있는지 감지 할 수있는 수단을 추가해야합니다. 그들이 가리키는 내용.

  • 상대 경로 하나의 방법으로 또는 웹 페이지에 또 다른 중요한하지만, 내용의 차이를 렌더링하지 않습니다
  • GET-변수 :

    당신은 적어도 처리해야합니다.

  • 잘못된 URL입니다.
  • href 속성의 JavaScript에 관한 정보입니다.
  • HTML이 아닌 자료에 대한 링크 - PDF, 이미지 등으로 직접 다운로드 링크 (확장이 항상 충분하지는 않은지 감지, PHP 스크립트로 이미지를 제공하는 경우).

이러한 것들은 단지 몇 가지 측면 일 뿐이지 만 모든 종류의 일반적인 방식으로 사용하려는 경우에는 스파이더의 근본적인 부분이어야한다는 점이 모두 중요합니다.

+0

zrvan 감사합니다, Ι 당신이 옳다고 생각합니다. 사실 나는 Ι이 장래의 사용법을 위해 유용한 것을 코드화 할 때, 나는 일반적인 코딩을하고있다. :). 페이지의 내용을 고려하면 페이지의 고유성 문제를 해결할 수 있다고 생각합니다. 두 개의 URL은 동일한 내용을 가지고 있기 때문에 두 개의 "페이지"는 도메인 내의 urlpath가 다르더라도 유사하거나 동일합니다. 그래서 큰 두 줄을 비교하고 빨리 비교해야 할 필요가 생겼습니다. – themis

+1

@themhz : 이것을 수행하려면 일반적으로 해시를 사용합니다. 스파이더의 요구에 따라 충돌 위험이있는 빠른 알고리즘 (예 : md5) 또는 낮은 위험도가 낮은 느린 알고리즘 중에서 선택해야합니다 (예 : sha-family에있는 것과 같은) 충돌에 대한 정보는 http://se.php.net/manual/en/function.hash.php에서 Gmail의 'luka8088 at gmail dot com'에서 타이밍 표를 확인하십시오. 그러나 이것은 정말로 새로운 SO 문제의 주제입니다. – zrvan

관련 문제