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

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에서 확인이 가능한지 여쭤봅니다.

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

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

회원로그인

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