Загрязнение Facebook fbclid — можно ли это предотвратить?

Мне очень нравится функция постоянных ссылок в Discourse.

Например, я собираю фотографии и видео по адресу https://fortmactech.com/riverbreak — он перенаправляет на более длинный URL реальной темы.

Проблема, с которой я столкнулся, заключается в том, что когда эту ссылку публикуют в Facebook и кто-то на неё нажимает, Facebook добавляет в конец свой мусор fbclid. Так что URL выглядит примерно так:

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

И это вызывает ошибку 404 в Discourse.

Есть ли какой-то способ заставить Discourse игнорировать параметр fbclid?

По-моему, это можно решить с помощью настройки нормализации постоянных ссылок, но я не могу подобрать регулярное выражение. В общем, нужно удалять всё, начиная с ?fbclid= и включая его.

Меня это тоже интересует. Это загрязняет наши данные в Google Analytics.

Итак, мне удалось решить это с помощью правила страницы Cloudflare:

Screen Shot 2021-04-14 at 9.27.33 AM

Но я бы предпочел сделать это на уровне Discourse.

Как вы перенаправляете https://fortmactech.com/riverbreak на https://fortmactech.com/t/river-drone-videos-photos-2021/818?

Похоже, что добавление параметров запроса к URL темы не вызывает никаких проблем. Например, это должно работать: https://fortmactech.com/t/river-drone-videos-photos-2021/818?fbclid=IwAR1E9PoBxuWURZRJlA4D0VrnESbfjGfC2xKuvVJzCRUmIJy7ZRKMkkH8I-U. Таким образом, проблема каким-то образом связана с перенаправлением, которое настроено для https://fortmactech.com/riverbreak.

Я вроде бы решил это сейчас, используя Cloudflare. Я на время отключил правило страницы Cloudflare, если вы хотите увидеть ошибку 404.

Попробуйте эту ссылку в качестве примера:

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

 

Я добавил это так в админке / настройки / постоянные ссылки:

Screen Shot 2021-04-14 at 10.30.21 AM

 

Вот как это выглядит после добавления:

 

 

И результат следующий:

 

Я также пробовал с косой чертой в конце.

Если я применяю правило страницы Cloudflare для удаления части с fbclid до того, как запрос попадет в Discourse, то всё работает отлично.

Разве для этого и предназначена функция Discourse «Нормализация постоянных ссылок»? Смог бы я с помощью этой настройки удалять всё, что идет после знака вопроса?

Спасибо за детали. Похоже, параметры запроса нарушают перенаправление постоянных ссылок в Discourse. Не уверен, что это ожидаемое поведение.

Это определённо ожидаемо, это широко используется для постоянных ссылок, таких как, например, forum.php?topic_id=1234.

Это имеет смысл. Есть ли способ «преобразовать» входящий URL до того, как он будет проанализирован кодом постоянных ссылок? Это функция «Нормализация постоянных ссылок»?

Да, именно для этого и нужны нормализации постоянных ссылок :smiley:

Может, кто-нибудь приведёт пример, как убрать ?fbclid= и всё, что идёт после него, используя настройку «Нормализация постоянных ссылок»? Спасибо :slight_smile: