Detectei hai algunhas semanas que cando alguén abría unha ligazón á web en Twitter e logo tentaba compartilo de novo en Twitter desde ese navegador interno, a ligazón rompía.
Isto era porque Twitter engade, antes de compartir, un parámetro indicando a plataforma na que se está a ver a entrada. Ese pequeno ?s=09
parece disparar a páxina de busca (s
é o parámetro de procura) e como non teño actualmente busca neste blogue, salta 404
. O curioso é que outros valores, como ?s=9
por exemplo, non dan problemas….
Inicialmente arranxárao retirando toda querystring ao facer a redirección de WordPress en Nginx; isto é, quitando esta parte en negriña:
location / {
try_files $uri $uri/ /index.php?$args;
}
Aínda que parecía que non afectaba ao comportamento do resto do sitio, veño de decatarme de que isto rompía completamente o acceso ao webfinger que, entre outras cousas, soporta a interconexión co Fediverse o co Mastodon do blogue. Así que restituín eses $args
e implementei este outro arranxo, visto en StackOverflow:
location / {
if ($args ~ (.*)(^|&)s(?:=[^&]*)?(\2|$)&?(.*)) {
set $args $1$3$4;
}
try_files $uri $uri/ /index.php?$args;
}
Posto ao comezo do bloque para a location
xeral (os ficheiros PHP fan match antes), limítase a quitar o parámetro s
, e só o parámetro s
, da querystring. Penso que isto me permitirá mesmo activar a busca no futuro —e se me engano, podo engadir máis if
s— así que polo de agora volven funcionar tanto eses ligazóns compartidas do comezo, como o webfinger, como todo o demais.
Podes interaxir con esta entrada de moitas formas: con pingbacks, con webmentions ou simplemente respondendo a través do Fediverso, por exemplo visitándela en Mastodon.