Apache2가 .htaccess의 헤더 지시문을 오류없이 구문 분석하려면 어떻게합니까?


35

Apache가 허용하도록 구성되지 않았다는 지시문 때문에 500 내부 서버 오류로 페이지를로드하고 있습니다.

AllowOverride를 all로 설정하고 .htaccess 파일을 포함하여 다음을 포함합니다.

<FilesMatch "\.(eot|ico|pdf|flv|jpg|jpeg|png|gif|svg|swf|ttf|woff)$">
Header set Cache-Control "max-age=31536000, public"
Header set Expires "Wed, 23 Apr 2014 17:00:01 UTC"
</FilesMatch>

/var/log/apache2/error.log에는 다음이 있습니다.

[Sat Jul 20 15:12:36 2013] [alert] [client 24.15.83.241] /home/jonathan/.htaccess: Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration

Apache2가 'Header'지시문을 올바르게 처리하려면 무엇을 지정해야합니까?

답변:


64

apache2를 사용하면 실행 a2enmod headers한 다음 sudo service apache2 restart헤더 모듈이 자동으로 설치됩니다.


2
이 답변을 수락해야합니다
Himanshu Mishra

1
실제로이 답변이 가장 좋지만, 최신 데비안과 같은 일부 최신 GNU / Linux 배포판은 systemd서비스 관리에 기반 하고 있으며 다른 구문을 가지고 있다고 말할 수 있습니다. Apache를 다시 시작하십시오 sudo systemctl restart apache2.service. 그러나 현재 폴백 함수가 존재하므로 이전 sudo service명령이 작동합니다. 그러나 가까운 시일 내에 작동을 멈출 수 있습니다.
TranslucentCloud

a2enmod/usr/sbin내 시스템에. 그것은 비 독사 사용자의 PATH에 없기 때문에 루트가 아니라면 a2enmod를 찾을 수 없습니다. TL; DR : sudo a2enmod그냥 실행 하지 마십시오 a2enmod.
Michael Hoffmann

14

다음과 같은 줄을 추가해야합니다.

LoadModule headers_module modules/mod_headers.so

httpd.conf그것에 대한 지원을 추가 하십시오 . Ubuntu 및 이와 유사한 a2enmod headers기능을 통해 구성에서 자동으로 활성화 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.