답변:
httpd.conf에서 add (또는 이미있는 경우 변경) :
AddDefaultCharset utf-8
/etc/apache2/conf-available/charset.conf
이것을 다음에 추가하십시오 .htaccess
:
IndexOptions +Charset=UTF-8
또는 관리자 권한이있는 경우 다음을 편집 httpd.conf
하고 추가하여 전체적으로 설정할 수 있습니다 .
AddDefaultCharset UTF-8
(당신이 사용할 수 AddDefaultCharset
있는 .htaccess
도하지만 방법은 아파치가 생성 한 디렉토리 목록에 영향을 미치지 않습니다.)
.htaccess
모든 하위 디렉토리에도 영향을 줄 수 있습니다. 아마도 아파치는 .htaccess
웹 사이트 폴더의 루트 디렉토리까지 부모 디렉토리를 찾을 것입니다
.htaccess
모든 서버에서 작동 하는 방식입니다. 모든 하위 디렉토리에도 영향을 미칩니다. 그러나 Apache 생성 디렉토리 목록 페이지는 .htaccess
(AFAIK) 를 사용하여 UTF-8로 강제 설정할 수 없습니다 .
.htaccess
것은 일반적으로 좋지 않습니다. 서버 설정이 다양한 파일에 분산되면 버그를 추적하기가 더 어려워집니다. 요청한 파일마다 Apache가 디렉토리의 .htaccess
파일과 .htaccess
상위 디렉토리의 모든 파일 을 읽어야합니다 . .htaccess
따라서 디렉토리 별 설정 (예 : 특정 디렉토리에 대한 액세스 금지) 또는 관리자 권한을 얻을 가능성이 전혀없는 경우에만 사용해야합니다.
참조 AddDefaultCharset 지침 , AddCharset 지침 , 그리고 이 기사를 .
AddDefaultCharset utf-8
그러나 나는 지금 한자를 사용해야합니다. 이전에는 한자를 유니 코드 코드로 변환하여
&#
해킹을 사용하여 문서에 포함 시켰습니다 . 그러나 문자가 적은 페이지에만 유용합니다.파일 이름에 문자셋 정보를 인코딩하면 아파치가이를 기반으로 적절한 인코딩 헤더를 출력합니다.
AddCharset
아래 줄과 같이 conf 파일 의 줄 덕분에 가능 합니다.
conf/httpd.conf
:
AddCharset UTF-8 .utf8
따라서 이름이로 끝나는 파일이 있으면
.html.utf8
아파치는 마치 페이지가 UTF-8로 인코딩 된 것처럼 페이지를 제공하고 그에 따라 적절한 문자 인코딩 지시문을 헤더에 덤프합니다.
장소 AddDefaultCharset UTF-8
에 /etc/apache2/conf.d/charset
. 사실, 이미 존재합니다. 위의 내용을 제거하여 주석 처리를 제거하면됩니다 #
.
/etc/apache2/conf.d/charset
. 배포에 따른 사용자 정의 포함 파일입니다. 이 아닌 다른 파일도 마찬가지입니다 httpd.conf
.
/etc/apache2/conf-enabled/charset.conf
내 배포판 (Ubuntu 16.4)에 있습니다. 또한 작동하지 않았습니다.
htaccess에 다음 줄을 추가하십시오.
AddCharset utf-8 .html .css .php .txt .js
서버의 conf 파일에 액세스 할 수없는 사용자를위한 것입니다. 다른 시도가 실패했을 때 시도하는 것이 하나 더 있습니다.
.htaccess 사용과 관련된 성능 문제까지는 이것을 보지 못했습니다. 내 일반적인 페이지로드 시간은 .htaccess가 있거나없는 150-200mS입니다.
페이지가 올바르게 렌더링되지 않으면 성능이 좋은 것입니다. 대부분의 공유 서버는 사용자가 문자 세트를 추가하기 위해 선호되는 구성 파일에 대한 사용자 액세스를 허용하지 않습니다.
.htaccess
파일을 사용 하지 않는 경우 지금 시작하지 마십시오. 이것이 나쁜 생각 (tm) 인 성능 및 관리 이유가 있습니다
Apache 구성 (httpd.conf)에 액세스 할 수 있는지 확실하지 않지만 AddDefaultCharset 지시문을 설정할 수 있어야합니다. 보다:
http://httpd.apache.org/docs/2.0/mod/core.html
mod_mime.c 모듈을 찾아서 다음이 설정되어 있는지 확인하십시오.
AddDefaultCharset utf-8
또는 동등한 Apache 1.x 문서 ( http://httpd.apache.org/docs/1.3/mod/core.html#adddefaultcharset )
그러나 이것은 "응답 컨텐츠 유형이 text / plain 또는 text / html"인 경우에만 작동합니다.
또한 페이지에 문자 세트가 설정되어 있는지 확인해야합니다. 자세한 내용은 다음을 참조하십시오.
이것은 테스트되지 않았지만 작동합니다.
.htaccess 파일에 다음을 입력하십시오.
<Files ~ "\.html?$">
Header set Content-Type "text/html; charset=utf-8"
</Files>
그러나 서버에 mod_headers가 필요합니다.
<Files>
태그 로 감쌀 필요조차 없었습니다 .