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

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

藏色散人
藏色散人원래의
2020-07-06 10:45:152406검색

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 응답 헤더에 기본 문자 집합을 추가합니다. 이론적으로 이는 문서 본문의 e8e496c15ba93d81f6ea4fe5f55a2244 태그를 통해 지정된 문자 세트를 재정의하지만 실제 동작은 일반적으로 사용자의 브라우저 설정에 따라 다릅니다. 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

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

<Directory /usr/local/httpd/htdocs> 
  Options Indexes FollowSymLinks 
</Directory>

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

해결 방법

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.