2010-04-27 4 views
0

최근 저는 Wordpress의 구조에 관심이 있습니다.Wordpress는 어떤 방법으로 페이지 URL을 다시 작성합니까?

그들은라는 이름의 테이블을 사용 (wp_posts을)이 테이블에 그들은 저장 등 3 개 관련 분야 :

post_title 
post_name 
guid 

그것은 그들이 POST_TITLE 각 이야기의 제목을 저장하는 것이 분명 필드, 및 의 이름은, 이고 게시물의 전체 URL은 길드입니다. 도대체, 그들은 방법으로 이러한 URL을 다시 작성 곳

는하지만 브라우저에 나타납니다

http://localhost/wordpress/about/

이에 대한 htaccess로 규칙도 없다!

rewrite.php를 확인했는데 1 인치를 이해하지 못 했습니까?!

비슷한 페이지를 만들어야합니다. 어떤 단계를 거쳐야합니까?!

+0

답변은 확실히 htaccess 파일에 있습니다. –

+0

pekka 내가 답변을 존중하지만 httaccess 파일의 index.php에만 리다이렉션이 있습니다 –

답변

5

.htaccess 파일에는 모든 요청을 index.php로 보내는 다시 쓰기 지시문이 있습니다. 다시 쓰기 지시문은 웹 서버가 리디렉션하지 않고 원래 요청을 다른 위치로 전달하도록 지시합니다. 따라서 index.php는 요청 경로 (예 : "/ about /"와 같은 호스트 이름 다음의 URL 부분)를 포함하여 모든 원래 매개 변수를받습니다.

index.php는 요청을 받으면 URL을 기반으로 응답하는 방법을 파악하여 프론트 컨트롤러처럼 작동합니다. (예 : 요청 경로에서

  1. 봐 : 나는 그들이 그것을 구현 방법을 정확하게 말할 수

    나는 워드 프레스의 내부 동작에 적이 없어,하지만 index.php에 대한 일반적인 생각이있다 클라이언트가

  2. 는 요청 경로에서 슬러그의 압축을 풉니 다 사용했다는) "/ /에 대해"("정보")
  3. 반환 적절한 포스트 "에 대한"슬러그이있는 포스트 조회
+0

가설이 맞다면 어떻게 될까요, 어떻게 지옥, 리다이렉트가 htaccess에서 일어나는 동안 index.php로 리디렉션 된 페이지인지 이해할 수 있습니다. ! –

+1

내가 말했듯이 모든 요청은 index.php로 이동합니다. – Jeff

+0

나는 혼란을 보았다고 생각한다. 리디렉션이 아니라 재 작성입니다. 웹 서버는 요청 경로를 포함하여 모든 원래 요청 매개 변수를 index.php로 전달합니다. 그 질문에 대답합니까? – Jeff

0

WP_Rewrite 클래스를 살펴보면 많은 질문이 설명됩니다.

기본적으로 대부분의 사용자가 말한 것처럼 .htaccess은 서버의 실제 파일이나 폴더로 확인되지 않는 모든 URL을 index.php으로 다시 작성하기 만합니다.

WordPress는 URL과 키 및 값의 배열 인 다시 쓰기 규칙 목록을 매핑합니다. 키는 정규식이며 값은 을 매개 변수 문자열에 매핑합니다.

예를 들어, 하나의 다시 쓰기 규칙은 다음과 같습니다.

category/(.+?)/page/?([0-9]{1,})/?$' => 'index.php?category_name=$matches[1]&paged=$matches[2]' 

그런 다음 WP_Query와 함께 클래스 WP는 매개 변수를 사용하여 요청을 처리합니다.

관련 문제