2017-12-03 6 views
0

모든 금지 된 요청을 404 '찾을 수 없음'페이지로 리디렉션하려고합니다. URL 액세스하려고합니다. http://localhost:4503/content/mysite/home.html (정상 작동 중) 하지만 액세스를 시도하면 http://localhost:4503/content/mysite (여기에서 금지 됨). 내 사이트가 adobe experience manager에서 개발되었으며 리디렉션과 관련된 설정/설정이 표시되지 않습니다. 그래서 아파치 웹 서버에서 뭔가해야합니다. 그리고 저는 Apache에 익숙하지 않고 규칙을 작성하지 않았습니다. 금지 된 요청을 리디렉션하는 것이 있다면 404 찾을 수 없음 페이지에 문의하십시오.모든 403 금지 된 요청을 404 페이지로 재 지정

답변

0

Dispatcher가 승인하는 HTTP 요청을 지정하기 위해/filter 섹션을 사용하여 디스패처에서 간단한 규칙을 적용 할 수 있습니다. 다른 모든 요청은 404 오류 코드와 함께 웹 서버로 다시 전송됩니다.

귀하의 경우에는 다음과 같이 될 수 있습니다.

/filter { 
    /0001 { /glob "*" /type "deny" } 
    /0002 { /type "allow" /method "POST" /url "/content/mysite/[.]*.html" } 
} 

이렇게하면 먼저 모든 파일에 대한 액세스를 거부 한 다음 특정 콘텐츠 (여기서는/mysite 아래의 * .html 페이지)에 대한 액세스를 허용합니다.

+0

좋은 해결책이 될 것입니다. 하지만 damemadmin, misadmin, crx/de 등과 같은 다른 유용한 리소스를 거부합니다. –

+0

솔루션이 작동합니다!. 404 페이지의 hppd.conf에 ErrorDocument 404/notfound.html을 추가해야했습니다. 감사 –

1

시도 할 수있는 다양한 옵션이 있습니다.

  1. 기본 금지 메시지 대신 친숙한 메시지를 표시하려는 경우 AEM에서 고유 한 403 오류 처리기를 정의 할 수 있습니다. 403.jsp/apps/sling/servlet/errorhandler/에 오버레이하고 관련 오류 메시지를 표시하기 위해 사용자 정의 html을 추가하십시오. 이 경우 HTTP 응답 상태 코드는 여전히 403입니다. 예제는 Adobe의 블로그에서 찾을 수 있습니다. https://helpx.adobe.com/experience-manager/6-3/sites/developing/using/customizing-errorhandler-pages.html
  2. 응답에 403 HTTP 상태 코드를 원하지 않으면 위에서 설명한 403.jsp의 상태 코드를 무시할 수 있습니다. JSP 코드에서 응답이 아직 커밋되지 않은 경우 HttpServletResponse.setStatus API를 사용하여 404 상태 코드를 설정할 수 있습니다. 응답이 이미 커밋 된 경우이 슬링 블로그에 설명 된대로 작동하지 않습니다. https://sling.apache.org/documentation/the-sling-engine/errorhandling.html
  3. mod_rewrite 또는 PHP을 사용하여 웹 서버에서 재정의 할 수 있습니다. This SO question은 이것을 달성하기위한 옵션을 보여줍니다.