Facebookのfbclid汚染--防止できますか?

Discourse のパーマリンク機能は本当に気に入っています。

例えば、私は https://fortmactech.com/riverbreak に写真や動画を収集しています。これは実際のトピックの長い URL に転送されます。

問題なのは、それが Facebook で投稿され、誰かがそれをクリックすると、Facebook が末尾に fbclid という不要なパラメータを追加してしまうことです。そのため、URL は次のようになります。

https://fortmactech.com/riverbreak?fbclid=IwAR1E9PoBxuWURZRJlA4D0VrnESbfjGfC2xKuvVJzCRUmIJy7ZRKMkkH8I-U

すると、Discourse で 404 エラーが発生してしまいます。

Discourse に fbclid パラメータを無視させる方法はありませんか?

おそらく「パーマリンクの正規化」設定で対応できると思いますが、正規表現がわかりません。基本的には「?fbclid=」以降をすべて削除する必要があると思います。

これにも興味があります。これは Google アナリティクスのデータを汚染しています。

Cloudflare のページルールで解決できました:

Screen Shot 2021-04-14 at 9.27.33 AM

ただし、Discourse 側で対応したいと考えています。

https://fortmactech.com/riverbreakhttps://fortmactech.com/t/river-drone-videos-photos-2021/818 に転送する方法を教えてください。

トピック URL にクエリパラメータを追加しても問題が発生しないようです。例えば、以下の URL は動作するはずです: https://fortmactech.com/t/river-drone-videos-photos-2021/818?fbclid=IwAR1E9PoBxuWURZRJlA4D0VrnESbfjGfC2xKuvVJzCRUmIJy7ZRKMkkH8I-U。したがって、問題は https://fortmactech.com/riverbreak に対して設定されているリダイレクトに関連しているようです。

Cloudflare を使うことで、ある程度解決できました。404 エラーが発生している様子を確認したい場合は、しばらく Cloudflare のページルールを無効にしています。

例として、以下のリンクをお試しください:

https://fortmactech.com/riverbreak?fbclid=IwAR1E9PoBxuWURZRJlA4D0VrnESbfjGfC2xKuvVJzCRUmIJy7ZRKMkkH8I-U

 

管理者画面の「設定」>「パーマリンク」で、以下のように追加しました:

Screen Shot 2021-04-14 at 10.30.21 AM

 

追加後の様子は以下の通りです:

 

 

そして、結果は次のようになります:

 

 

末尾にスラッシュ(/)を付けた場合も試しました。

Cloudflare のページルールで、Discourse に到達する前に fbclid などのパラメータを削除するように設定すると、問題なく動作します。

これは、Discourse の「パーマリンクの正規化」機能の目的なのでしょうか?また、その設定を使って「?」以降の部分を削除することは可能でしょうか?

詳細をありがとうございます。クエリパラメータがDiscourseのパーマリンクリダイレクトを壊しているようです。これが意図された動作かどうかはわかりません。

確かに予想通りです。forum.php?topic_id=1234 のようなパーマリンクに頻繁に使用されています。

なるほど。パーマリンクコードによって解析される前に、受信した URL を「変換」する方法はありますか?それは「パーマリンク正規化」機能のことでしょうか?

はい、パーマリンクの正規化はまさにそのためにあります :smiley:

Permalinks Normalization 設定を使って、?fbclid= とその後の部分を削除する方法の例を教えてください。よろしくお願いいたします。:slight_smile: