아파치 리디렉션 및 캐시 헤더 설정?


10

Apache에서 리디렉션을 수행하는 것은 쉽습니다 (mod_alias).

RedirectMatch ^.*$ http://portal.example.com/

캐시 헤더를 설정하는 것도 마찬가지로 쉽습니다.

Header set Cache-Control max-age=0
Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT"

(캐시를 원하지 않습니다)

그러나! 둘을 결합 할 수없는 것 같습니다. 이 구성으로 인해 리디렉션이 전송되지만 헤더는 전송되지 않습니다.

<VirtualHost *:80>
        ServerName __default__
        Header set Cache-Control max-age=0
        Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT"
        RedirectMatch ^.*$ http://portal.example.com/
</VirtualHost>

실제로 일어나는 일의 예 :

jb@apto % telnet 192.168.0.1 80
Trying 192.168.0.1...
Connected to redirector.example.com.
Escape character is '^]'.
GET / HTTP/1.1
Host: foo

HTTP/1.1 302 Found
Date: Sat, 21 Aug 2010 09:36:38 GMT
Server: Apache/2.2.9 (Debian) Phusion_Passenger/2.2.9
Location: http://portal.example.com/
Vary: Accept-Encoding
Content-Length: 316
Content-Type: text/html; charset=iso-8859-1

(etc)

리디렉션 반환하는 방법에 대한 모든 아이디어 캐시 헤더를?

답변:


10

Header 지시문에 "always"조건을 추가하면 다음과 같이 나타납니다.

Header always set Cache-Control max-age=0
Header always set Expires "Thu, 01 Dec 1994 16:00:00 GMT"

이것은 "항상"조건없이 작동해야합니다. 기본적으로 "onuccess"로 설정되어 2xx 응답 코드로 정의됩니다.


!!! 내가 이것을 어떻게 놓쳤는 지 모르지만 그래!
Jakob Borg

그렇습니다. 큰.
Cosimo

이상한 사용자 정의 헤더에는 작동하지 않는 것 같습니다.
juan

0

Perl 또는 PHP에서 중개인 스크립트를 구현해야합니다 (PHP를 사용합니다. 이미로드 된 경우 더 간단합니다). 재 작성 안내서를 확인하고 "확장 리디렉션"을 검색하십시오.

http://httpd.apache.org/docs/2.2/misc/rewriteguide.html

xredirect를 설정 한 다음 원하는 헤더를 밀어 내도록 스크립트를 설정하십시오.


실제로 이것이 더 나은 방법 (직접 구성에서)을 수행 할 수 없다는 것에 놀랐습니다. 그러나 이것은 정답처럼 보입니다. :(
Jakob Borg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.