2011-01-26 3 views
2

실제 사례는 NewsNow.co.uk에 있으며 수천 개의 웹 사이트에서 많은 정보를 얻을 수 있습니다. 그리고 뉴스 URL 중 하나에 대한 예 :리디렉션 URL 만들기

http://newsnow.co.uk/A/471722742?-19721

모든 뉴스의 URL은 같은 형식의하고 있지만 우리가 그것을 클릭 할 때, 우리는 예를 들어, 실제 URL로 이동됩니다 :

http://www.abcactionnewsx.com/dpp/news/state/bla-bla

사람이 효율적으로이를 달성하는 방법을 알고?

+0

의 URL 리디렉션의 대부분은 검색 엔진 최적화의 목적과 깔끔함 – Harish

답변

0

이것은 Apache 또는 Nginx와 같은 일반적인 웹 서버에 내장 된 다시 쓰기 엔진을 사용하여 수행됩니다. 이러한 엔진을 사용하면 첫 번째 URL과 같은 URL을 PHP 페이지에서 더 잘 이해할 수있는 규칙으로 변환하는 규칙을 작성할 수 있습니다. .

http://newsnow.co.uk/index.php?catagory=A&id=471722742&referrer=-19721 

이 사용자에게 투명하고 그들은 오직 그들이 처음에 입력 한 링크가 표시됩니다 그런 다음 변수를 사용할 수는 전달되는 예를 들어, 다음에 위의 첫 번째 링크를 설정 할 규칙을 만들 수 있습니다 당신이 원하는 어떤 행동이라도 수행 할 수 있습니다. 이 경우 변수를 사용하여 관심있는 실제 대상을 검색하기 위해 일종의 데이터베이스 조회를 수행 할 수 있습니다. 그러면 문제의 링크로 PHP 리디렉션을 수행하는 것입니다.

체크 아웃 아파치의 재 작성 기능 (전화의 mod_rewrite)에 매우 빠른 소개는 다음 링크 : http://www.besthostratings.com/articles/mod-rewrite-intro.html

2

'내부'경로 테이블 ('newsnow'URL)과 '대상'URL을 일종의 데이터베이스에 저장하십시오. sqlite3은 작은 응용 프로그램을위한 좋은 선택이 될 것입니다.

특정 문자열의 검색 시간이 선택한 데이터베이스에서 너무 느린 경우 '내부'경로를 해싱 할 수 있습니다.

요청이 들어 오면 데이터베이스에서 찾아보고 'target'URL이있는 302 응답을 자원의 새 위치로 다시 보냅니다.

+0

당신이에 가서 처음으로 이름을 변경 URL에 대한 htaccess로 사용 사이트 (즉, 쿠키가없는)는 리디렉션하기 전에 2 초 동안 스플래시 페이지를 표시합니다. 이 경우 그들은 단지 . 결과적으로 리디렉션은 순간적이므로 '2'가 위의 '0'이되는 것으로 추측합니다. – Fanis

+0

@Fanis, 아, 만약 그들이 어떤 종류의 얼룩을 가지고 있다면, 나는 당신이 옳다고 확신한다. 쿠키의 유무에 따라 두 가지 종류의 응답을 처리하는 것보다 그 일을 더 쉽게 수행 할 수 있습니다. – sarnold