사이트가 프로덕션 환경에서 실행 중이고 거기에 있어야 하는 동안 온라인 스테이징 환경에서 사이트를 이동하고 사용합니다.
모든 파일을 이동하고 다음과 같이 호스트 파일을 Staging-Server로 지정했습니다 123.123.123.12 example.org
. 내 스테이징 서버의 IP는 다음과 같습니다 123.123.123.12
.
내가 방문하면 http://example.org
얻는다.즉시https://example.org
SSL 인증서가 프로덕션 환경을 사용하여 만들어지기 때문에 모든 종류의 문제가 발생합니다 . 그래서 내 연결이 안전하지 않다고 알려줍니다.
나는 이것을 많이 가지고 놀았습니다. 이제 나는 리디렉션 루프에 있으며, 여기서는 버전 http://
과 https://
-버전 사이에서 네 번째로 반송됩니다.
요청이 다음과 같이 '이동'한다고 가정합니다.
(step 1) (step 2) (step 3)
Visit http://example.org -> Browser -> Apache -> Browser -> Result (https://example.org)
따라서 1, 2 또는 3단계 중 어딘가에서 이 리디렉션이 이루어집니다.
가장 중요한 질문:이 302 리디렉션이 어디서 오는지 어떻게 파악하여 이를 비활성화하고 를 통해 내 사이트에 액세스할 수 있습니까 HTTP://
?
시도1 - 브라우저가 이를 수행하지 않았는지 확인
처음에는 다음을 시도했습니다.
- 개발자 도구를 연 상태에서(네트워크 탭 -> 캐시 비활성화 선택)
- 시크릿 브라우저에서
- 캐시된 데이터와 쿠키 등을 모두 지우고 브라우저를 다시 시작하세요.
- 다른 브라우저에서 시도해 보세요.
Chrome과 Firefox 모두 실제로 https
. 그래서 'https 강제'를 비활성화하는 방법을 Google에 입력했습니다. 나는 찾았다간략한 버전그리고상세한 버전. 그들 중 누구도 아무것도 바꾸지 않았습니다(나는 여전히 리디렉션됩니다).
Attempt2 - VirtualMin에서 자동 리디렉션 비활성화
여기서 이런 일이 발생합니다:
'시스템 설정' -> 'Virtualmin 구성' -> 'SSL 설정' -> 선택 취소: '기본적으로 HTTP를 HTTPS로 리디렉션'
원천.
이상하게도 이 이후에 리디렉션 루프가 시작되었습니다!
그리고 나는 이것이 '그냥' .conf
서버의 모든 도메인에 대한 -files에 몇 줄을 추가한다고 가정합니다.
시도3 - .htaccess
-file이 포트 80에서 트래픽을 '잡는지' 확인하세요.
다음 줄을 추가했습니다.
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
...여기에서 발견됨.
같은 것.
Attempt4 - Apache 설정에 추가 로그 추가
리디렉션이 어디서 왔는지에 대한 정보를 볼 수 있을 것 같습니다. 나는 를 가지고 놀면서 추가 로깅을 추가하려고 시도했지만 /etc/apache2/sites-enabled/example.org.conf
아무데도 연결되지 않았습니다. 나는이 게시물, 그러나 그것은 구식입니다(찬성 댓글 참조).