영구 링크 및 특수 HTML 문자

안녕하세요,

영구 링크(permalinks)를 입력하면 정상적으로 작동하지만, 특수 문자가 포함된 URL을 입력할 때 문제가 발생합니다.

예를 들어 다음 URL을 입력하면

display/exacom/ADO+<>+Jira+Cloud%3A+Date+time+sync

다음과 같이 변환됩니다.

display/exacom/ADO+%3C%3E+Jira+Cloud%253A+Date+time+sync

이것은 %25가 HTML에서 %에 해당하는 값이기 때문입니다.

하지만 링크를 시도해 보면

https://community.exalate.com/display/exacom/ADO<>+Jira+Cloud%3A+Date+time+sync

페이지를 찾을 수 없다고 표시됩니다.

URL 입력 시 HTML 엔티티를 사용하는 것도 작동하지 않으며, 이렇게 하면 원래 URL을 찾을 수 없기 때문입니다.

질문 - 이러한 유형의 문자가 포함된 영구 링크를 올바르게 입력하는 방법(이중 HTML 인코딩 방지)은 무엇인가요?

순수한 추측이지만: 이스케이핑, 예: \%3A 같은 것 말이에요?

시도해 보았습니다

bla\%3Abla

다음과 같이 변환됩니다

bla%5C%253Abla

rails에 직접 입력해서 이스케이핑을 더 세밀하게 제어해 볼 수도 있겠네요. 도움이 될지는 모르겠지만, 다음에는 그렇게 시도해 볼 것 같습니다.

저희는 discourse.org의 호스팅 옵션을 사용하고 있습니다.
그 자유를 가질 수 있다고 생각하지 않습니다.

그 표시 링크가 이상해 보이는데, 앞부분이 빠져 있는 것 같습니다.

TinyURL 링크 단축 서비스를 사용해 본 적이 있나요?

리리님,

감사합니다.

이것들은 저희가 이전 커뮤니티 사이트에 게시했던 위키 페이지들입니다.
예를 들어

https://community.exalate.com/display/exacom/ADO<>+Jira+Cloud%3A+Date+time+sync

이것은 이제 다음 주소에서 접근할 수 있습니다.

https://oldcommunity.exalate.com/display/exacom/ADO<>+Jira+Cloud%3A+Date+time+sync

물론 - 오늘 첫 번째 버전에 접근을 시도하는 사람들은 디스코스(discourse) 사이트로 이동하게 되며 404 오류를 받게 됩니다. 그래서 저희는 영구 링크(permalinks) 기능을 사용하고자 합니다.

문제는 URL을 입력할 때 해당 페이지가 검색되지 않아 리다이렉트가 작동하지 않는다는 것입니다.

Tinyurl은 불가능합니다. 왜냐하면 사용자들이 실제로 사용할 것이 바로 그 URL이 아니기 때문입니다.

그 수가 몇 개인지, 그리고 모두 같은 어이없는 내용이 앞에 붙어 있는 건지 궁금합니다.

모두에 xxx%3A+슬러그가 포함되어 있나요?

솔직히 무슨 짓을 하는지 이해가 안 됩니다. 이 페이지로 사이트에서 테스트용 영구링크(permalink)를 성공적으로 만들었거든요:

사이트에서 /test로 가면 바로 그 페이지로 이동합니다.


수정: 아니, 처음 올린 글(OP)을 제대로 이해하지 못했네요. 이제 뭘 하려는 건지 알겠어요. 그 복잡한 링크를 영구링크로 사용하려는 거군요. 아, 그게 가능한지 모르겠네요. 특별한 이스케이프 처리 없이. :thinking:

맞아요 - 시간 내주셔서 감사합니다.

모두 xxx%3A+slug 형식을 가지고 있나요?

아니요

이제 모든 사용 사례를 개요로 보여주는 페이지를 만들었습니다.

여기서 일부 링크와 URL 인코딩 방식이 어떻게 처리되는지 확인하실 수 있습니다.

음. 커뮤니티를 공개하기 전에 이들을 이전하는 것이 더 쉬웠을 텐데.

대부분은 괜찮은 것 같아.

> 앞의 모든 것을 제거하는 영구 링크 정규화를 만든 다음, 그 뒤에 있는 부분만 영구 링크로 설정할 수 있을지도 몰라.

소스 URL이 여러 곳에서 사용되고 있으며, 반드시 우리의 통제 범위 내에 있는 것은 아닙니다.

소스 URL을 직접 입력할 수 있다면 이 문제를 해결할 수 있습니다.

Lily가 현재 해결책을 찾고 있습니다…

감사합니다

Lily:

대충 살펴본 결과 대부분의 URL은 정상적으로 작동할 것 같습니다.

나머지 URL에는 큰따옴표(>)가 포함되어 있고, 큰따옴표 이후의 내용은 일반 문자열입니다. 따라서 영구링크(permalink)에서 큰따옴표까지의 첫 부분을 제거하도록 하면 자동으로 정상 작동할 것입니다.

제이, 안녕하세요.

해당 페이지의 URL은 모두 추가하기 전에 URL 인코딩이 되어 있습니다. 컴포저도 URL을 인코딩하기 때문이며, 이는 예상된 결과입니다.

원래의 URL이 아닙니다.

원본 URL이 포함된 텍스트 파일을 제공하면 해결될까요?

프랜시스