경로/디렉토리/서버 IP를 제외하는 조건으로 Apache 헤더 설정

경로/디렉토리/서버 IP를 제외하는 조건으로 Apache 헤더 설정

저는 Duplicator Pro라는 WordPress 플러그인을 사용하고 있으며 설치 프로그램을 설치하는 가장 좋은 방법은 도메인이 아닌 서버 IP를 사용하는 것입니다. 이렇게 하면 여러 ModSecurity 규칙을 트리거하지 않으면서 서버에 자동 채우기 및 연결이 더 쉬워지기 때문입니다.

가장 좋은 설치 URL은 다음과 같습니다.

http://111.222.333.444/~customcpanelaccount/customfolder/installer.php

대신에:

https://website.com/customfolder/installer.php

해당 파일 중 하나를 로드하면 자동으로 다음으로 리디렉션됩니다.

/customfolder/dup-installer/main.installer.php

그러나 서버에는 다음과 같은 Apache/LiteSpeed ​​규칙이 있으므로 자동으로 http://를 https://로 리디렉션하고 이로 인해 다음 메시지가 표시됩니다.

네트워크에 연결

<IfModule mod_headers.c>
    Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>

installer.php위의 Apache/LiteSpeed ​​규칙을 직접 IP가 아닌 도메인에만 적용하거나 파일 및 main.installer.php디렉토리를 사용할 때 트리거되지 않도록 만드는 방법을 찾으려고 노력 중입니다./dup-installer/

FilesNotMatch / DirectoryNotMatch / LocationNotMatch 유형의 if 문이 없다는 것은 유감입니다.

누구든지 아이디어가 있으시면 도움이나 조언을 주시면 감사하겠습니다!

답변1

DOMAIN_REQUESTED도메인이 요청되면(IP 주소와 반대) 환경 변수(예: )를 설정 하고 인수 Header를 사용하여 이 환경 변수가 설정되었는지 여부에 따라 조건부로 설정할 수 있습니다 env=.

예를 들어:

SetEnvIf Host "[a-z]" DOMAIN_REQUESTED
Header always set Content-Security-Policy "upgrade-insecure-requests;" env=DOMAIN_REQUESTED

헤더에 문자 az가 포함되어 있으면 HostIP 주소가 아닌 도메인 이름을 요청해야 합니다. 이 경우 DOMAIN_REQUESTEDenv var는 1.

하지만...

  • 서버의 IP 주소와 사용자별 웹 디렉토리를 사용하여 안전하지 않은 HTTP를 통해 이것을 설치하는 것이 바람직하다는 것이 이상해 보입니다. 사용자별 웹 디렉터리(mod_userdir)는 루트 상대 URL 경로를 망칠 수 있으므로 일반적으로 피하는 것이 가장 좋습니다.

  • 이것이 단지 설치 과정을 위한 것이라면 해당 Header지시어를 일시적으로 주석 처리만 하면 안 될까요?

FilesNotMatch / DirectoryNotMatch / LocationNotMatch 유형의 if 문이 없다는 것은 유감입니다.

음, 일종의 방법이 있습니다.부정적인 예측(또는뒤를 돌아보다) 정규식에서 일치하는 시기를 결정합니다.~ 아니다발생하다.

installer.php...또는 의 파일 및 main.installer.php디렉토리를 사용할 때 트리거되지 않도록 하려면/dup-installer/

HTTP Content-Security-Policy: upgrade-insecure-requests;응답 헤더는 연결된 자산에만 영향을 미치며 최상위 탐색에는 영향을 미치지 않습니다. 따라서 이것은 적용되지 installer.php않습니다 main.installer.php. 이러한 요청이 진행 중인 경우업그레이드됨(또는 "리디렉션"되었을 가능성이 더 높음) 다른 것이 해당 작업을 수행하고 있습니다.

관련 정보