> 백엔드 개발 > PHP 문제 > Apache PHP가 깨졌을 경우 어떻게 해야 합니까?

Apache PHP가 깨졌을 경우 어떻게 해야 합니까?

藏色散人
풀어 주다: 2023-03-02 06:06:02
원래의
2468명이 탐색했습니다.

Apache PHP 왜곡 코드에 대한 해결 방법: 먼저 "php.ini"에서 코드를 주석 처리한 다음 홈 디렉토리 언어를 "AddDefaultCharset utf-8"로 변경하고 마지막으로 Apache를 다시 시작합니다.

Apache PHP가 깨졌을 경우 어떻게 해야 합니까?

PHP 표시 깨짐 문자 및 Apache 내부 인코딩 문제에 대한 해결 방법

인코딩 문제

PHP 기본 인코딩은 utf-8이므로 html 코드의 메타 태그를 작성하지 않는 것이 편리합니다. . 깨진 문자가 나타납니다

E:\OpenStudy\www\CSphp
로그인 후 복사

그리고 제가 다운로드한 도움말 문서의 전자 정보의 html 버전에는 gb2312 설정이 필요합니다.

E:\OpenStudy\www\Electronic Books
로그인 후 복사

서버 구성을 시작했을 때 PHP는 utf-8 인코딩 방법을 사용했습니다. 모든 사람이 권장함

[php.ini]
default_charset = "UTF-8"
로그인 후 복사

서버 루트 디렉터리:

E:\OpenStudy\www
로그인 후 복사

관련 정보 참조

AddDefaultCharset 指令
说   明 当应答内容是text/plain或text/html时,在HTTP应答头中加入的默认字符集
语   法 AddDefaultCharset On|Off|charset
默认值 AddDefaultCharset Off
作用域 server config, virtual host, directory, .htaccess
覆盖项 FileInfo
状   态 核心(C)
模   块 core
로그인 후 복사

응답 내용이 text/plain 또는 text/html인 경우에만 이 명령은 HTTP 응답 헤더에 기본 문자 집합을 추가합니다. 이론적으로 이는 문서 본문의 태그를 통해 지정된 문자 세트를 재정의하지만 실제 동작은 일반적으로 사용자의 브라우저 설정에 따라 다릅니다. AddDefaultCharset Off는 이 기능을 비활성화합니다. AddDefaultCharset On은 Apache의 내부 기본 문자 집합인 iso-8859-1을 활성화합니다. IANA에 등록된 문자 집합 이름 중 하나에서 다른 문자 집합을 사용하도록 지정할 수도 있습니다. 예:

AddDefaultCharset utf-8
로그인 후 복사

AddDefaultCharset는 다음 상황에서만 사용해야 합니다. 모든 텍스트 리소스는 동일한 특정 문자 집합을 사용하며 문자 집합을 별도로 표시하는 것은 매우 번거롭습니다. 그러한 예 중 하나는 동적 콘텐츠(예: 레거시 CGI 스크립트)가 포함된 리소스에 문자 집합 매개 변수를 추가하는 것입니다. 이는 출력에 사용자 제공 데이터를 포함시켜 크로스 사이트 스크립팅 공격을 유발할 수 있습니다. 하지만 참고하세요. 더 나은 해결책은 이러한 스크립트를 수정하거나 삭제하는 것입니다. 기본 문자 집합을 설정하면 브라우저의 자동 문자 집합 감지 기능이 비활성화되기 때문입니다.

AddCharset 指令
说明 在给定的文件扩展名与特定的字符集之间建立映射
语法 AddCharset charset extension [extension] ...
作用域 server config, virtual host, directory, .htaccess
覆盖项 FileInfo
状态 基本(B)
模块 mod_mime
로그인 후 복사

AddCharset 지시문은 특정 파일 확장자와 특정 문자 집합 간의 매핑을 설정합니다. charset은 확장자가 확장명인 파일의 MIME 문자 세트 매개변수입니다. 이 매핑 관계는 모든 기존 매핑 관계에 강제로 추가되며 모든 기존 확장 확장 매핑을 덮어씁니다.

AddLanguage ja .ja
AddCharset EUC-JP .euc
AddCharset ISO-2022-JP .jis
AddCharset SHIFT_JIS .sjis
로그인 후 복사

위의 정의에 따라 xxxx.ja.jis 문서는 ISO-2022-JP 문자 집합을 사용하는 일본어 문서로 간주됩니다(xxxx.jis.ja 문서도 마찬가지). 문서가 올바르게 번역되고 표시될 수 있도록 문서의 문자 세트 인코딩을 클라이언트에 알리는 것 외에도 AddCharset 지시문은 내용 협상(사용자의 기본 설정 정보를 기반으로 사용자에게 반환할 여러 문서 중 하나를 선택)에도 사용됩니다. ).

<Directory> 指令
说   明 封装一组指令,使之仅对文件空间中的某个目录及其子目录生效
语   法 <Directory directory-path> ... </Directory>
作用域 server config, virtual host
状   态 核心(C)
模   块 core
로그인 후 복사

는 특정 디렉토리와 그 하위 디렉토리에만 적용되도록 일련의 명령을 캡슐화하는 데 사용됩니다. "디렉토리" 범위에서 사용할 수 있는 모든 지시문을 사용할 수 있습니다. 디렉토리 경로는 디렉토리의 전체 경로이거나 Unix 셸 일치 구문이 포함된 와일드카드 문자열일 수 있습니다. 와일드카드 문자열에서 "?"는 모든 단일 문자와 일치하고 "*"는 모든 문자 시퀀스와 일치합니다. "[]"를 사용하여 문자 범위를 결정할 수도 있습니다. 위의 와일드카드 문자는 "/" 문자와 일치할 수 없습니다. 따라서 은 /home/user/public_html과 일치하지 않지만 은 올바르게 일치합니다. 예:

<Directory /usr/local/httpd/htdocs> 
  Options Indexes FollowSymLinks 
</Directory>
로그인 후 복사

디렉토리 경로 매개변수를 사용할 때는 주의하세요. 이 매개변수는 Apache가 파일에 액세스하는 데 사용하는 파일 시스템 경로와 일치해야 합니다. 특정 에 할당된 지시문은 다른 기호 링크를 통해 생성된 경로와 같은 다른 경로가 가리키는 동일한 디렉터리 파일에 적용되지 않습니다.

해결 방법

1. php.ini에서 코드를 주석 처리합니다.

[php.ini]
;default_charset = "UTF-8"
로그인 후 복사

2. 기본 디렉터리 언어를

AddDefaultCharset  utf-8
로그인 후 복사

로 변경합니다. 필요한 폴더의 인코딩을 변경합니다. [E:/OpenStudy/www/Electronic Books] 방법

<Directory "E:/OpenStudy/www/Electronic Books">
  AddDefaultCharset gb2312
</Directory>
로그인 후 복사

수정이 완료되고 아파치를 재시작하면 끝

자세한 내용은 PHP 중국어 홈페이지를 방문해주세요!

위 내용은 Apache PHP가 깨졌을 경우 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿