2011-08-17 2 views
0

나는 [R] 플래그가 브라우저로 리디렉션되도록 함을 알고 있습니다. 내가 이해하는 방식은 브라우저의 주소 표시 줄에 URL을 "다시 그릴"것입니다. 이에 http://mydomain.com/test을 : http://mydomain.com/en/students내 RewriteRule에 [R]이 필요한 이유는 무엇입니까?

을하지만 위의 예에서 [R]을 생략하면, 여전히 저를해야

그래서

RewriteRule test en/students/ [R]

변경이 주소를 취할 것/en/students 페이지, 그렇지 않아야합니까? 내 이해는 여전히 그 페이지로 이동해야하지만, 주소 표시 줄은 단순히 업데이 트되지 않습니다.

내가 틀렸다고 생각하면 제발 저를 버리세요. 그렇지 않으면 내 경우에 효과가없는 이유를 이해하는 데 도움이 필요합니까? 그 후로 WordPress에 필요한 RewriteRules 때문입니까? WordPress는 항상 엔진을 호출하는 데 사용 된 ACTUAL URI를 분석하여 문제를 해결합니까? 아니면 RewriteEngine의 제품인이 "숨겨진"URI에 액세스 할 수 있습니까?

답변

0

는 요청은 이런 식입니다 :

  1. 브라우저는 http://mydomain.com/test를 요청합니다.
  2. 다시 쓰기 규칙이 내부적으로 http://mydomain.com/en/students으로 변경됩니다.
  3. 아파치는 브라우저에 http://mydomain.com/en/students의 콘텐츠를 반환합니다. 브라우저는 내부적으로 URI가 변경되었다는 것을 알지 못합니다. [R]

는 요청은 이런 식입니다 :

  1. 브라우저는 http://mydomain.com/test를 요청합니다.
  2. 다시 쓰기 규칙은 브라우저에 응답을 보내어 대신 http://mydomain.com/en/students을로드하라는 메시지를 보냅니다.
  3. 브라우저에서 http://mydomain.com/en/students을 요청합니다 (상태 표시 줄도 변경 될 수 있음).
  4. 다른 다시 쓰기 규칙이 없으면 Apache는 http://mydomain.com/en/students의 내용을 브라우저에 반환합니다.

나는 이전의 경우 Wordpress가 재 작성된 URI가 아닌 요청 된 URI에 액세스하고있는 것으로 추측 할 수 있습니다.

+0

자세한 답변을 보내 주셔서 감사합니다. WordPress는 URL을 잡고 파싱하여 어떤 페이지를 게재할지 파악합니다. 리디렉션을하지 않으면 WordPress에서 이전 URL을 가져오고 그 URL로 무엇을해야할지 모릅니다. 이 경우 [P] 플래그는 어떨까요? –

+0

@TomAuger : 아마도. 그것을 시도하고 볼 수 있습니다. – Anomie

0

[R]은 재 지정을 다시 작성합니다. 그래서 브라우저는 새로운 URL로 보내집니다. 정상적인 재 작성은 서버에 의해 처리되고 사용자는 실제 대상이 무엇인지 알지 못합니다. [R]없이

관련 문제