자동 링크된 URL이 HTTPS를 사용하도록 설정

구글링이나 검색을 해봤지만 찾지 못했습니다. 문장 안에 discourse.org 같은 도메인 이름을 입력하면 자동으로 링크가 됩니다. 이 링크는 HTTP입니다:

이걸 기본적으로 HTTPS로 만들 수 있는 방법이 있을까요? 수동으로 HTTP 링크를 바꾸지 않고 혼합 콘텐츠(mixed content) 오류를 제거하려고 하고 있습니다.

force_https 사이트 설정이 있습니다. 표준 설치에서는 기본적으로 활성화되어 있습니다.

여기서는 활성화되어 있지 않은 건가요? 여기에서는 meta.discourse.org에 대한 직접 링크조차 HTTP 링크로 표시됩니다. 다른 포럼에서도 이 내용이 사실인지 확인해 보겠습니다.

코드를 확인해 본 결과, force_https는 기본적으로 false로 설정되어 있습니다.

여기에는 force_https 사이트 설정이 누락되어 있습니다. 다음 링크에서 읽은 바로는:

이것은 HTTPS가 활성화되어 있기 때문에 발생하는 문제입니다. 저는 Let’s Encrypt를 사용하고 있습니다.

기본적으로 텍스트 링크는 HTTP로 설정되며, 이를 변경할 수 없는 것 같습니다. 새로운 줄에 추가하면 HTTPS 링크가 됩니다. 예를 들어:

방금 확인했는데, 이렇게 게시된 링크는 force-https가 켜져 있어도 http를 사용합니다.

잘못된 추측일 수 있지만, 그렇게 배치된 경우 oneboxer가 모든 리다이렉트를 따르지만, 같은 줄에 있는 링크의 경우에는 그러지 않기 때문이라고 생각합니다.

자, 핵심 질문은 이것입니다. 이 동작을 변경할 수 있을까요? HTTPS는 요즘 사실상 기본이 되었습니다:

discourse.org 또는 meta.discourse.org은 자동으로 링크로 대체되는 감시 대상 단어입니다. 아마도 거기에 https 링크를 사용하지 않는 것 같습니다. :thinking:

그것이 사실이라고 생각하지 않습니다. 예를 들어 google.com과 apple.com 같은 사이트에서도 동일한 동작이 나타납니다.

제 생각에는 프로토콜이 없는 인라인 링크는 기본적으로 http로 처리되는 것 같습니다. (예를 들어 https://google.com은 정상적으로 작동합니다)

오, 맞네. :thinking:

맞아요. 이 동작을 HTTP 대신 HTTPS로 변경하는 것이 더 합리적이지 않나요?

최근에 변경 사항이 없는 한, 보안이 없는 사이트로 연결되는 링크는 혼합 콘텐츠 오류를 발생시키지 않습니다.

혼합 콘텐츠 오류는 페이지를 구성하는 자산(assets)을 가리킵니다. 사이트가 https 프로토콜을 사용하지만, 보안이 없는 소스에서 자산을 로드하는 경우 혼합 콘텐츠를 서빙하는 상황이 됩니다.

Force_https는 당신의 discourse 사이트와 그 내부의 링크를 가리킵니다.

새 줄에 있는 링크는 단순한 링크가 아니라 원박스(onebox) 처리됩니다. 이를 위해 링크가 "로드"되어야 하며, 목적지의 기본 문서가 검사됩니다. 사이트가 http 대신 https를 사용하는 경우, 해당 리다이렉트가 발생하게 됩니다.

그렇게 하고 싶지 않을 것 같습니다.

사실상 높은 비율이라는 점은 좋은 일이지만, 포럼의 기본 동작 방식을 변경할 만큼 85%가 충분한 수치라고 생각하지는 않습니다.

제가 아는 바로는, HTTPS 사이트의 거의 모든 경우(99% 이상이라고 단언할 수 있습니다)가 HTTP 요청을 HTTPS로 리다이렉트합니다.

반대는 성립하지 않습니다.

즉, http://example.com으로 링크를 걸어도 결국 https://example.com에 도달하게 되므로 거의 문제가 되지 않습니다.


@Stephen 님과 마찬가지로, 잘못된 부분에 초점을 맞추고 계신 것 같습니다. 제가 아는 바로는, <a href="http... 링크를 사용하는 것만으로는 혼합 콘텐츠(mixed content) 경고가 트리거되지 않습니다.

이 오류는 HTTPS 사이트에 비-HTTPS 콘텐츠를 임베드할 때만 발생해야 합니다. 따라서 외부 이미지 로딩이나 제3자 스크립트 임베딩, 테마 내의 특정 요소 등이 원인이 될 수 있습니다.
오류가 무엇에 의해 트리거되는지 확인하기 위해 브라우저 콘솔을 더 깊이 파고들어 보시는 것이 좋을 것 같습니다 :slight_smile:

설명해 드리겠습니다. 저희 포럼 답변에 도메인 이름을 직접 입력하는 사용자가 많습니다. 또한 메인 사이트에서 포럼 답변을 임베드하고 있어, 이제 HTTPS 대신 HTTP 내부 링크가 몇 개 생겼습니다. 큰 문제는 아니지만, 이것도 HTTPS로 만들 수 있다면 좋겠습니다.

맞습니다, 혼합 콘텐츠 경고가 발생하지 않습니다 :slight_smile:

URL을 업데이트하기 위해 답변을 모니터링하거나 스크립트를 작성하는 것 외에 제가 할 수 있는 다른 방법이 있을까요? :slight_smile:

감시 대상 단어를 사용하여 맨 호스트명을 URL로 대체할 수 있다고 생각합니다.

이런 것이 가능한지 몰랐지만 좋은 아이디어인 것 같습니다. 한번 시도해 보겠습니다. 혹시 다른 분들도 이 방법을 찾고 계신다면:

…/admin/customize/watched_words/action/replace

이 두 기능이 호환되지 않을 것 같습니다. 기억이 맞다면, markdown linkify tlds가 우선순위가 높아 감시 단어 치환으로 링크가 교체되는 것을 허용하지 않는 것 같습니다.