BOARD

문제 해결

Apache 웹 서버 기본 인코딩 설정 변경 및 .htaccess 활용 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 8회 작성일 26-09-30 17:15

본문

Apache 웹 서버 기본 인코딩 설정 변경 및 .htaccess 활용 방법

HTML 메타 태그를 적용했음에도 한글이 깨지는 문제를 해결하기 위해, Apache 웹 서버와 PHP 환경에서.htaccess를 이용해 기본 인코딩(UTF-8)을 강제 설정하고 확인하는 방법을 알아봅니다.

HTML 파일에 메타 태그를 추가했음에도 한글이 깨지는 이유는 웹 서버(Apache)나 PHP 설정에서 지정된 기본 인코딩(charset)이 HTTP 응답 헤더(HTTP Response Header)를 통해 우선적으로 적용되기 때문입니다. 서버 수준에서 설정된 인코딩 값이 HTML 문서 내의 메타 태그 설정보다 우선순위가 높기 때문에, 서버 헤더와 문서 내 메타 태그의 인코딩 방식이 다를 경우 브라우저가 문자를 올바르게 해석하지 못해 깨짐 현상이 발생합니다.

##.htaccess 파일 기본 인코딩 설정 코드

아파치(Apache) 웹 서버와 PHP 환경에서 기본 인코딩을 UTF-8로 지정하기 위해 계정 루트 디렉토리에 .htaccess 텍스트 파일을 만들고 입력해야 하는 설정 코드는 다음과 같습니다. (단, 웹 호스팅 환경에서.htaccess 파일 사용이 허용되어 있어야 합니다.)

AddDefaultCharset utf-8
php_value default_charset "utf-8"

설정 방법 및 조건

  • 파일 위치: 사용 중인 계정의 루트 디렉토리에 .htaccess라는 이름으로 파일을 생성합니다.
  • 코드 역할: 첫 번째 줄(AddDefaultCharset utf-8)은 텍스트 파일과 일반 웹 문서에 적용되는 아파치 서버 설정이며, 두 번째 줄(php_value default_charset "utf-8")은 PHP에 적용됩니다. 이 설정은 웹호스팅 업체에서 PHP에 기본 charset을 설정해 두어 HTML 메타 태그(meta charset)가 무시되고 인코딩이 적용되지 않을 때 우선적으로 적용됩니다.
  • 파일 권한: 파일 생성 후 접근 권한을 644로 변경해야 합니다.
  • 예외 사항: 웹호스팅 업체에서 서버 수준의 설정을 따로 하지 않은 경우라면 이 파일을 만들 필요 없이 HTML head 영역에 메타 태그만 지정해주어도 정상 동작합니다.

##.htaccess 파일 권한 설정 방법

계정 루트 디렉토리에 .htaccess 파일을 생성하고 설정 코드를 작성한 후에는 파일 접근 권한(Permission)을 644로 변경해야 합니다.

적용 절차

  1. 사용 중인 계정의 루트 디렉토리에 .htaccess 이름의 텍스트 파일을 만듭니다.
  2. 파일 내부에 아래 설정을 추가합니다.
    • AddDefaultCharset utf-8
    • php_value default_charset "utf-8"
  3. 파일 접근 권한을 644로 바꿉니다.

다음 행동 및 확인

  • 권한 설정 후 웹 서버에서 인코딩 설정이 정상적으로 반영되는지 HTTP 응답 헤더를 통해 확인합니다.

.htaccess 설정이 올바르게 적용되었는지 확인하려면 웹 브라우저의 개발자 도구를 통해 HTTP 응답 헤더(Response Headers)를 검사해야 합니다.

확인 절차

  1. 개발자 도구 실행: 크롬(Chrome) 등 웹 브라우저에서 해당 웹페이지에 접속한 후 F12 키를 눌러 개발자 도구를 엽니다.
  2. 네트워크 탭 이동: 상단 메뉴에서 Network(네트워크) 탭을 선택합니다.
  3. 문서 요청 확인: 페이지를 새로고침(F5)하여 리스트에 나타나는 문서 항목을 클릭합니다.
  4. 응답 헤더 확인: 우측 상세 정보 창에서 Headers(헤더) 항목 내 Response Headers(응답 헤더) 섹션을 찾습니다.
  5. 인코딩 값 점검: Content-Type 항목에 text/html; charset=UTF-8과 같이 설정한 인코딩 값이 올바르게 포함되어 있는지 확인합니다.

이 헤더 값은 서버에서 브라우저로 전달되는 정보이므로, HTML 메타 태그보다 우선하여 적용됩니다. 만약 설정한 값이 나타나지 않는다면.htaccess 파일의 위치나 서버 설정(AllowOverride 허용 여부)을 다시 점검해야 합니다.

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.