2010-07-09 3 views
0

이것은 실제로 두 부분으로 구성된 질문입니다. 내 서버는 Apache 자체의 모든 404 오류를 index.php?404으로 리디렉션하도록 설정됩니다. 그래도 페이지를 찾을 수 없다는 것을 알리기 위해 404 상태 메시지를 클라이언트로 전송하고 다음 사용자 정의 404 오류 페이지를 표시합니까? 나는 또한 다른 페이지 안에 프로세스가 있기 때문에. 페이지 자체가 존재할 수도 있지만 사용자 이름 (예 :)이 유효하지 않거나 존재하지 않으면 단순히 404 페이지와 404 페이지를 포함하여 동일한 404 페이지를 표시합니다. 클라이언트에게 페이지가 존재하지 않는다는 것을 알려주기 위해 PHP를 추가로 404 상태로 보내야합니까? 그렇다면 어떻게해야합니까?클라이언트가 404 오류 상태를 얻는 방법은 무엇입니까?

편집 :
더 이상 문제를 설명하려면 :
이 admin.example.com -> 관리자가 유효한 사용자 이름과 페이지를 표시합니다이
madeup.example.com이 -> madeup 잘못된 이름이며, 404 페이지를 출력 할 것입니다
* .example.com은 처리를 위해 index.php로 리다이렉트합니다. 그래서 검색 엔진 등은 처리 된 페이지가 있다고 생각하므로 간단히 404 페이지를 출력하고 스크립트를 죽입니다.

최근에 Google이 404 페이지의 페이지를 캐시했을 때 문제가 발생했습니다. ror 그래서 나는 페이지를 기술적으로 존재할 때 404 페이지를 발송할 때 검색 엔진 등을 캐싱하거나 읽는 것을 방지하는 방법을 알아 내려고 노력했습니다. 다른 대안이 있습니까?

답변

0

4nn/5nn 오류 페이지의 실제 HTTP 상태 헤더가 200 OK 인 경우 색인이 생성됩니다.

그래서 올바른 HTTP 상태 헤더와 함께 전송되었는지 확인해야합니다. 이 오류는 종종 을 전달/포함 대신 오류 페이지로 보내면 발생합니다. 리디렉션은 기본적으로 클라이언트에 서버에 새로운 요청을 실행하도록 지시하며, 이는 항상 200 OK이됩니다. 오류 페이지 내부의 헤더를 프로그래밍 방식으로 수정/설정하려고합니다.

header('HTTP/1.1 404 Not Found'); 

당신은 FirebugWeb Developer Toolbar 같은 도구를 사용하여 실제 HTTP 상태 코드를 확인할 수 있습니다.

+0

방화 광을 사용하여 상태 코드를 검사하려면 어떻게해야합니까? – animuson

+0

[Net] (http://getfirebug.com/network) 패널. – BalusC

관련 문제