파일이 PHP 일 때 mod_headers가 헤더를 보내지 않음


9

.htaccess 파일을 다음과 같이 설정했습니다.

 Header set MyHeader "I'm Set!"

http://example.com/test/기본 색인 파일이없는 해당 디렉토리 ( ) 로 이동 하여 네트워크 활동 (이 경우 Chrome)을 보면 헤더가 전송되고 있음을 알 수 있습니다. PHP 파일 ( http://example.com/test/test.php)로 이동하면 헤더가 전송되지 않습니다.

index.html을 ( <pre>Hi콘텐츠로) 작성했으며 전송됩니다. 파일 이름을 .php헤더없이로 변경했습니다 . orignal test.php을로 변경하면 test.html가비지 모양의 코드가 출력되고 헤더가 전송됩니다. 내가 변경하는 경우 test.php에 test.png, 나는 깨진 이미지 아이콘을 얻고, 헤더가 전송됩니다.

따라서 MIME 유형 및 파일 확장자 측면에서 위의 사항을 테스트하지 .php않으면 파일 (레지 트 또는 기타) 만 .htaccess 규칙이 적용되지 않거나 mod_headers 지시문이 설정되지 않은 것으로 보입니다 . 그러나 나는 이것을 테스트하는 방법을 모른다. 그리고 그것이 공유 서버이기 때문에 나는 httpd.conf찌르는 데 액세스 할 수 없다 .

아파치가 왜 PHP 파일에 대한 헤더 전송을 건너 뛸 것인지에 대한 아이디어가 있습니까?

나는 또한 시도했다 :

 <FilesMatch "\.(php)$">
     Header set MyHeader "I'm Set!"
 </FilesMatch>

PHP / CGI에서 PHP / FastCGI로 업데이트하면 문제가 해결 된 것으로 보입니다. 근본 원인이 무엇인지 아는 사람이 있다면 피드백을 받고 싶어합니다.
— Anthony

1
앤서니, mod_fastcgi를 사용 했습니까? 나는 똑같은 동작을 경험하고 mod_fastcgi가 mod_headers 기능을 중단하는 것처럼 보입니다. 어제이
— Onkeltem

여기에 동일 : / 뉴스 또는 해결 방법이 있습니까? 나는 이것이 더 많은 경우에 문제가 아니라고 상상할 수 없다 ...
— Adrian Föder

답변:


4

CGI 스크립트를 실행할 때 예상되는 동작입니다. 최신 (2.4) 버전에서 mod_headers 워드 프로세서 :

성공의 기본값은 아래 나열된 것과 유사한 상황에서 항상 변경해야 할 수 있습니다. 또한 기존 헤더와 관련하여 항상 성공의 상위 세트가 아니기 때문에 두 시나리오에서이 지시문을 반복하는 것이 일부 시나리오에서 의미가 있습니다.

[...]
CGI 스크립트에 의해 생성 된 헤더를 수정하거나 제거하고 있습니다.이 경우 CGI 스크립트는 기본 테이블이 아닌 항상 해당 테이블에 있습니다.

원래 문제 (아마도 더 나은 설명 포함)는 버그 49308에 있습니다.


올바르게 읽는다면 Header always set MyHeader "I'm Set!"문제를 해결해야합니다. 누군가가 제안한 곳에서 답을 찾았고 그 경우 OP에서도 작동하지 않았다고 생각합니다. 그러나 나는 그들이 시도 Header set always했다는 것을 확신합니다.이 제안이 실패한 이유 일 수 있습니다.
— Anthony

아니, 다시 가져가 나는 그 시도에 ctrl-z했고 그것은이었다 Header always set. 난 그냥 인용을 잘못 읽고 있습니까?
— Anthony

원래 질문에서 당신은 그것을 지정하지 않았습니다. 확실합니까? Header always set MyHeader "I'm Set!"귀하의 예에 따르면 과 같은 것이어야합니다 .
— Andrew M.

글쎄, 나는 아파치의 승인없이 그것을 시도했지만, 나는 한 번의 시도를 포기했을지도 모른다. 그리고 이제 작동하고 있으므로 CGI에서 FastCGI로 전환되었다고 가정하고 막상 의심 스러웠습니다.
— Anthony
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.