htaccess에서 404 페이지는 작동하는데 500에러 페이지는 안나오네요

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
htaccess에서 404 페이지는 작동하는데 500에러 페이지는 안나오네요

QA

htaccess에서 404 페이지는 작동하는데 500에러 페이지는 안나오네요

본문

ErrorDocument 404 /pages/general/error-404.php
ErrorDocument 500 /pages/general/error-500.php

 

일부러 없는 페이지 링크로 접속하면 지정한 404 페이지는 잘 나옵니다

그런데 일부러 php 에러내면 지정한 500 페이지가 나오는게 아니라

브라우저에서 보여주는 500에러페이지가 나오네요..무슨일인지 모르겠습니다.

 

페이지가 작동하지 않습니다.

현재 example.com에서 요청을 처리할 수 없습니다.

HTTP ERROR 500

 

 

당연히 해당 파일은 url로도 잘 접속해서 확인가능합니다.

경로에 문제가 있다거나 해당 파일이 없다거나 해당 파일에서 오류가 나는건 아닙니다.

 

일부러 에러발생할때 사용한 코드입니다.

변수선언 끝에 ; 를 넣지 않았습니다.


<?php
$val = ""

이 질문에 댓글 쓰기 :

답변 2

웹서버가 기본페이지 찾고있습니다. 올바른 경로로 해주세요

조금 더 자세하게 설명해주실 수 있으실까요?
기본페이지를 찾고 있어서 올바른 경로로 해야된다는 말씀이
아파치설정에서 어떤걸 설정해줘야 하는 걸까요?

<VirtualHost *:80>
ServerName example.com
.....
ErrorDocument 500 http://www.exampl.com/pages/general/error-500.php
</VirtualHost>

이렇게 해줘도 안되었거든요

흠...www.exampl.com 이도메인은 실제 도메인이 아닌데요;;;

그리고 또한 ErrorDocument 이렇게 설정하는것은 내부적오류 에대해 적용이 않될거에요.
하여 삭제 해버리세요

그리고

php자체에서 오류헨들링처리 해주시는게 낮습니다.
에러를 로그로 기록하거나, 에러 페이지로 리다이렉션할 수 있도록 해줄려면
페이지 상단에 다음과 같이 추가 해주세요
또한
https 면 바꿔주시요

<?php
set_error_handler(function($errno, $errstr, $errfile, $errline) {
    header('Location: http://실제 오류페이지 경로/error-500.php', true, 500);
    exit;
});


function customErrorHandler($errno, $errstr, $errfile, $errline) {
    if ($errno === E_USER_ERROR) {
        http_response_code(500);
        header("Location: /error/error-500.php");
        exit;
    }
}

// 사용자 정의 오류 처리 함수를 등록
set_error_handler("customErrorHandler");


이렇게 해결했습니다. 감사합니다.

그런데 가용성이 저조한 htaccess 로 분기처리하시는 특별한 이유가 있으신건지 궁금하네요. 굳이, htaccess 를 설정하지 않아도 경로에 해당 페이지거 없을 경우 띄울 수 있는 로직은 금방 개발할텐데요. PHP에 해당 연결 페이지 경로에 파일이 존재하는지 유무를 체크하는 내장함수들이 있습니다. 

제 짧은 소견으로는
is_file 이나 file_exists 를 사용하면 파일이 경로에 있는지 확인이 가능하겠지만

제가 여쭤보고 싶은건 이미 없는 경로에 접속을 했는데
이걸 php에서 확인이 가능한지 여쭤봅니다.

가능하시다면 혹시 예제코드 제공해주실 수 있으실까요??

답변을 작성하시기 전에 로그인 해주세요.
전체 110
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT