2009-08-11 3 views
2

나는 Wordpress 소스 코드에서 최고점을 잡는 즐거움을 가졌습니다. 나는 그들이 어떻게 사용자 정의 URL 기능을 관리하는지 궁금해했지만 실제로 얻을 수 없었다.Wordpress "검색 엔진 친화적 인"URL (permalinks) 구현

wordpress .htaccess 파일 내부의 다시 쓰기 규칙은 모든 요청을 단순히 index.php로 리디렉션합니다. 그 후

, 그것은 나에게 신비이다 :을 index.php로 리디렉션 일단 그들이 example.com/this/title/is/cool/ 경기 index.php?p=233 ?

답변

3

을 어떻게, 해당 파일은 this/title/is/cool 부분이 무엇인지 결정하기 위해 $_SERVER['REQUEST_URI']보고하고 갈 수 리디렉션 된 실제 페이지 URL이 첫 번째 부분 일지라도 REQUEST_URI가 전체 URI 문자열을 나열하기 때문에 데이터베이스에서 어떤 페이지를 검색 할 것 인 지 조회하십시오. 예를 들어

,

http://www.example.com/foo/bar/ 

이 실제로로드 http://www.example.com/index.php가 발생합니다

http://www.example.com/index.php/foo/bar/ 

에 다시 도착하지만, $_SERVER['REQUEST_URI']은 내 전체 /index.php/foo/bar/이있을 것이다.

일부 응용 프로그램은 다른 접근 방식을 사용, 그들은 재 이런 식으로 뭔가가되도록 그냥 후행 "디렉토리"를 타고 쿼리 문자열로 넣어 .htaccess를 사용

http://www.example.com/index.php?path=/foo/bar/ 

있는 케이스에 제공된 경로는 _GET['path']에서 사용할 수 있습니다.

+0

감사합니다. 나는 그것이 그와 같을 수 있다고 생각했지만 어느 누구도 서버 변수가 어디에서나 사용할 수 있다고 생각하지 않기 때문에 그것을 부인했습니다. $ _SERVER [ 'REQUEST_URI']은 실제로 모든 설정에 존재하는 신뢰할 수있는 변수입니까? – pixeline

+0

'$ _SERVER [ 'REQUEST_URI']'는 전체 URI가 아니라 URI 경로와 쿼리 만 포함합니다. – Gumbo

+0

고맙습니다. 편집 됨. – Amber