MiG
1
저는 Discourse의 영구 링크(permalinks) 기능을 정말 좋아합니다.
예를 들어, 저는 https://fortmactech.com/riverbreak에서 사진과 영상을 수집하고 있는데, 이 링크는 실제 주제의 긴 URL로 이동합니다.
제가 겪고 있는 문제는 이 링크를 Facebook에 게시했을 때, 누군가가 링크를 클릭하면 Facebook이 URL 끝에 fbclid 같은 불필요한 파라미터를 붙여 넣는다는 것입니다. 그러면 URL은 다음과 같은 형태가 됩니다:
https://fortmactech.com/riverbreak?fbclid=IwAR1E9PoBxuWURZRJlA4D0VrnESbfjGfC2xKuvVJzCRUmIJy7ZRKMkkH8I-U
그리고 Discourse에서 404 오류가 발생합니다.
Discourse가 fbclid 파라미터를 무시하게 만드는 방법이 있을까요?
MiG
2
이것은 아마도 영구 링크 정규화(Permalinks Normalization) 설정으로 처리할 수 있을 것 같은데, 정규식(regex)을 어떻게 작성해야 할지 모르겠습니다. 기본적으로 ?fbclid= 이후의 모든 문자를 제거하는 방식이 맞을 것 같습니다.
rmens
3
저도 이 문제에 관심이 있습니다. 이 문제로 인해 Google Analytics 데이터가 오염되고 있습니다.
MiG
4
그래서 Cloudflare 페이지 규칙으로 해결했습니다:

하지만 가능하면 Discourse 레벨에서 처리하는 것이 더 좋습니다.
simon
5
https://fortmactech.com/riverbreak을 https://fortmactech.com/t/river-drone-videos-photos-2021/818으로 어떻게 전달(forwarding)하고 있나요?
주제 URL에 쿼리 매개변수를 추가해도 문제가 발생하지 않는 것으로 보입니다. 예를 들어, 아래 URL은 정상적으로 작동해야 합니다: https://fortmactech.com/t/river-drone-videos-photos-2021/818?fbclid=IwAR1E9PoBxuWURZRJlA4D0VrnESbfjGfC2xKuvVJzCRUmIJy7ZRKMkkH8I-U. 따라서 이 문제는 https://fortmactech.com/riverbreak에 설정된 리다이렉트와 관련이 있는 것으로 보입니다.
MiG
6
Cloudflare를 사용하여 이제 어느 정도 해결했습니다. 404 오류가 발생하는 것을 확인하고 싶으시면 Cloudflare 페이지 규칙을 잠시 비활성화해 두었습니다.
예시로 이 링크를 시도해 보세요:
https://fortmactech.com/riverbreak?fbclid=IwAR1E9PoBxuWURZRJlA4D0VrnESbfjGfC2xKuvVJzCRUmIJy7ZRKMkkH8I-U
관리자 / 설정 / 영구링크(Permalinks)에 이렇게 추가했습니다:

추가된 후의 모습은 다음과 같습니다:
그리고 결과는 이렇습니다:
뒤에 슬래시(/)를 붙여서도 시도해 보았습니다.
Discourse에 도달하기 이전에 Cloudflare 페이지 규칙으로 fbclid 부분을 제거하면 정상적으로 작동합니다.
이것이 Discourse의 “영구링크 정규화(Permalinks Normalization)” 기능의 용도인가요? 해당 설정을 사용하여 ? 이후의 모든 내용을 제거할 수 있을까요?
simon
7
자세한 설명 감사합니다. 쿼리 파라미터가 Discourse의 영구 링크 리다이렉트를 깨뜨리는 것 같습니다. 이것이 의도된 동작인지 확실하지 않습니다.
riking
(Kane York)
8
그건 당연히 예상되는 부분이고, 예를 들어 forum.php?topic_id=1234와 같은 영구 링크(permalink)에 널리 사용됩니다.
MiG
9
그렇군요. 영구 링크 코드가 URL을 분석하기 이전에 들어온 URL을 "변환"하는 방법이 있나요? 그게 “영구 링크 정규화(Permalinks Normalization)” 기능인가요?
justin
(Justin DiRose)
10
네, 바로 그게 퍼malink 정규화의 목적입니다 
MiG
11
Permalinks Normalization 설정을 사용하여 ?fbclid= 및 그 이후의 내용을 제거하는 방법을 예시해 주실 수 있나요? 감사합니다 