동일한 httpd에서 HTTP를 HTTPS로 리디렉션하는 방법은 무엇입니까?


10

내가 가진 것은 다음과 같습니다.

  • CentOS 5.4 (32 비트)
  • Apache httpd 설치 (서버 버전 : Apache / 2.2.11 (Unix))
  • mod_rewrite는 이미 존재합니다

질문 : VirtualHost 정의를 사용 하지 않고 간단한 http://site.comhttps://site.com 으로 리디렉션하는 방법 은 무엇입니까?

추신 : SF에 대한 나중에 답변을 찾으려고했지만 좋은 해결책을 찾지 못했습니다.

감사.

답변:


9
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

2
RewriteRule ^(.*) https://%{HTTP_HOST}$1나에게 더 의미가 있습니다.
cregox

무한 반복되지 않습니까?
어니스트 뮬러

아뇨, 방금 테스트했습니다. 문서 에서 조언 하는 방식조차도 끝입니다.
cregox

1
Apache 2.4.10을 사용하여 .htaccess에 해당 명령을 삽입하면 Heroku에 배포되는 무한 루프가 발생합니다. Cawas가 제안한 변형은 이상하게도 내 URL을 엉망으로 만듭니다. 나는 다른 명령의 집합을 시도했다 : RewriteCond %{HTTP:X-Forwarded-Proto} !httpsRewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI}- 크롬과 파이어 폭스에서 작동하지만, 사파리와 오페라에 실패합니다. 흥미롭게도 위의 세 줄을 생략 RewriteEngine On하고 더 이상 무한 루프를 얻지 못하면 Safari 및 Opera에서 여전히 실패합니다 (Chrome 및 Firefox에서 작동).
Purplejacket

2

디렉토리를 기반으로 mod_alias 및 Redirect 를 사용할 수 있습니다 . 링크 된 문서는 추가 세부 사항을 식별합니다.

<Directory /path/to/site>
   Redirect /service https://foo2.example.com/service 
</Directory>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.