채택완료
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로도 잘 접속해서 확인가능합니다.
경로에 문제가 있다거나 해당 파일이 없다거나 해당 파일에서 오류가 나는건 아닙니다.
일부러 에러발생할때 사용한 코드입니다.
변수선언 끝에 ; 를 넣지 않았습니다.
Copy
<?php
$val = ""
답변 2개 / 댓글 8개
채택된 답변
+20 포인트
답변에 대한 댓글 5개
흠...www.exampl.com 이도메인은 실제 도메인이 아닌데요;;;
그리고 또한 ErrorDocument 이렇게 설정하는것은 내부적오류 에대해 적용이 않될거에요.
하여 삭제 해버리세요
그리고
php자체에서 오류헨들링처리 해주시는게 낮습니다.
에러를 로그로 기록하거나, 에러 페이지로 리다이렉션할 수 있도록 해줄려면
페이지 상단에 다음과 같이 추가 해주세요
또한
https 면 바꿔주시요
<?php
set_error_handler(function($errno, $errstr, $errfile, $errline) {
header('Location: http://실제 오류페이지 경로/error-500.php', true, 500);
exit;
});
그리고 또한 ErrorDocument 이렇게 설정하는것은 내부적오류 에대해 적용이 않될거에요.
하여 삭제 해버리세요
그리고
php자체에서 오류헨들링처리 해주시는게 낮습니다.
에러를 로그로 기록하거나, 에러 페이지로 리다이렉션할 수 있도록 해줄려면
페이지 상단에 다음과 같이 추가 해주세요
또한
https 면 바꿔주시요
<?php
set_error_handler(function($errno, $errstr, $errfile, $errline) {
header('Location: http://실제 오류페이지 경로/error-500.php', true, 500);
exit;
});
[code]
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");
[/code]
이렇게 해결했습니다. 감사합니다.
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");
[/code]
이렇게 해결했습니다. 감사합니다.
그런데 가용성이 저조한 htaccess 로 분기처리하시는 특별한 이유가 있으신건지 궁금하네요. 굳이, htaccess 를 설정하지 않아도 경로에 해당 페이지거 없을 경우 띄울 수 있는 로직은 금방 개발할텐데요. PHP에 해당 연결 페이지 경로에 파일이 존재하는지 유무를 체크하는 내장함수들이 있습니다.
답변에 대한 댓글 3개
답변을 작성하려면 로그인이 필요합니다.
기본페이지를 찾고 있어서 올바른 경로로 해야된다는 말씀이
아파치설정에서 어떤걸 설정해줘야 하는 걸까요?
<VirtualHost *:80>
ServerName example.com
.....
ErrorDocument 500 http://www.exampl.com/pages/general/error-500.php
</VirtualHost>
이렇게 해줘도 안되었거든요