6

이것은 Sitecore 질문보다 HTTP 사양 질문에 더 가깝습니다. 사용자가 존재하지 않는 페이지에 액세스 그래서Sitecore는 "302 found"를 사용하여 사용자를 내 맞춤 404 페이지로 리디렉션합니다. 합법적입니까?

<setting name="ItemNotFoundUrl" value="/404.aspx" /> 

, (예를 들어 www.example.com/xyz)가 내 사용자 지정 404 리디렉션 :

나는 Sitecore에서 설정 404 오류 페이지가 페이지 (예 : www.example.com/404.aspx). 이것이 문제

302 found redirect to 404 file not found

:

Sitecore 아래 파이어 버그 스크린에서와 같이 302을 사용하여 리디렉션을 수행? 즉, Google 및 기타 검색 엔진은 URL www.example.com/xyz에서 내 404 페이지의 색인을 생성합니까? 문제의 사이트는 원래 404 페이지 ("!")에서 "200 OK"응답을 반환하도록 설정되었으므로 검색 엔진은 사이트에 대한 깨진 링크를 발견 할 때마다 사이트 404 페이지의 색인을 생성합니다.

302는 리디렉션이므로 최종 (사용자 정의 404) URL의 상태 코드는 모든 클라이언트가 초기 (리디렉션) URL에 적용된다고 가정하는 것으로 가정합니다.

이 아닌 경우 문제를 해결할 수있는 표준 사양/문서는 무엇입니까?

답변

3

실제로 문제가 있습니다. Google은 이제 404.aspx 페이지가 존재하지 않는다고 생각할 것이므로 존재하지 않는 항목이 일시적으로 리디렉션되는 것으로 생각할 것입니다.

나는 이것을위한 해결책을 찾았다. blogged about it here.

기본적으로 항목이 파이프 라인 프로세서를 통해 존재하지 않는다고 판단한 다음 404 페이지의 내용을 WebRequest를 사용하여 요청하고 해당 내용을 브라우저에 404 상태 코드로 반환하여 내용을 검색합니다. .

+1

이봐, 대답을 주셔서 감사합니다 - 그것은 가장 직접적으로 질문에 대한 답 때문에, 허용 대답으로이를 표시하고 있습니다 ("이게 나쁜가요?", "네, 그것은"). 여전히 픽스 중 하나를 작동시키는 데 문제가 있지만 Sitecore 지원에이 문제를 던지고 있습니다. 어딘가에 이상한 설정이있을 것입니다. – George

10

Ruud가 제안한 것과 마찬가지로 추가 코드를 작성하지 않고도 Sitecore/IIS 방식을 사용하는 blog post by Kern Herskind이있었습니다.

+0

매력처럼 작동합니다! 고마워, 나는이 해결책에 대해 몰랐다. 내 추측은 이제 플러시 될 수 있습니다. D –

+0

Sitecore의 "문제"는 동일한 것을 달성하는 여러 가지 방법입니다!:) – jammykam

+0

나에게 좋은데, 내 Sitecore에서 작동하지 않는 이유가있다. (나는 아직도 302에서 404로 리다이렉트한다.) 내 Sitecore 버전은 Sitecore.NET 6.5.0 (개정판 110818)이고 /sitecore/admin/showconfig.aspx는 다음을 제공합니다. <설정 이름 = "ItemNotFoundUrl"값 = "/ 404.aspx"/>, <설정 이름 = "LinkItemNotFoundUrl "value ="/ 404.aspx "/>, <설정 이름 ="RequestErrors.UseServerSideRedirect "value ="true "/> 어떤 아이디어? – George

4

이미 언급 한 바와 같이 올바른 HTTP 응답 헤더는 SEO뿐 아니라 다른 많은 사용 사례에서도 중요합니다.

"Sitecore 오류 관리자"라는 Sitecore 공유 소스 모듈을 사용하면 Sitecore 설치가 올바른 404 헤더로 응답하고 Sitecore 미디어 라이브러리 (예 : 다른 오류 응답 구성)와 같은 몇 가지 다른 기능이 제공됩니다. PDF 파일), 다국어 지원 등

Sitecore 마켓 플레이스 : http://marketplace.sitecore.net/en/Modules/Sitecore_Error_Manager.aspx

Github에서 : https://github.com/unic/SitecoreErrorManager