Perché il link perde dati: correggi parametri e frammenti
Distingui & e # in un URL, evita la doppia codifica e verifica con WikiURL il collegamento esatto che vuoi condividere.

Una pagina che si apre non riceve sempre i dati previsti
Hai preparato un link a una ricerca di caffè e tè. La pagina si apre, ma i risultati non corrispondono all’intenzione. Prima di accusare server o servizio di abbreviazione, controlla l’indirizzo esatto condiviso. Nell’esempio fittizio, q=cafe&te non rappresenta un solo valore cafe&te nella normale interpretazione dei parametri di modulo: & separa le voci. Inoltre, #precios indica un frammento. Sostituisci example.invalid con una tua pagina che supporti la query prima di provare un indirizzo reale.
Dividi la diagnosi in tre domande: quale pagina vuoi aprire, quali dati deve ricevere e quale parte vuoi mostrare dopo? Copia l’URL del link, non solo l’etichetta visibile del pulsante. Conserva una versione di riferimento prima di modificare. Questa guida propone di controllare i componenti e poi il risultato con WikiURL; non promette che ogni sito riconosca q o che una risposta riuscita significhi risultati di ricerca corretti.
https://example.invalid/buscar?q=cafe&te#preciosSe la e commerciale appartiene al testo, non usarla come separatore
Per cercare letteralmente cafe & te, la e commerciale fa parte del valore di q. Quando costruisci parametri con URLSearchParams, fornisci testo non codificato; la serializzazione rappresenterà quel carattere come %26. MDN spiega che l’interfaccia applica la codifica dei moduli quando converte parametri in testo e rappresenta gli spazi con +. Non significa sostituire tutte le e commerciali di un URL: alcune separano intenzionalmente i parametri.
L’esempio JavaScript crea l’indirizzo da una base, assegna il valore della ricerca e aggiunge il frammento separatamente. Puoi eseguirlo localmente in un ambiente JavaScript per osservare il risultato senza inviare la ricerca al dominio fittizio. Se non programmi, usa il link generato dalla tua pagina di ricerca invece di concatenare testo manualmente. Confronta il valore atteso con i risultati del sito; vedere %26 non basta a sapere come una specifica applicazione interpreta i dati.
const url = new URL("https://example.invalid/buscar");
url.searchParams.set("q", "cafe & te");
url.hash = "precios";
console.log(url.href);
// https://example.invalid/buscar?q=cafe+%26+te#preciosIl frammento non è un parametro ricevuto dal server
MDN documenta che il frammento dopo # viene elaborato dal client e non inviato al server durante la richiesta della risorsa. Una pagina può usarlo per raggiungere una sezione, come precios, o per un altro comportamento applicativo. Quindi, con q=cafe#te, te non completa il valore ricevuto dal server in quella richiesta. Se # deve far parte del testo cercato, sarà rappresentato nel valore come %23, come mostra il terzo indirizzo.
Controlla separatamente i due effetti: la ricerca deve mostrare i risultati previsti e il frammento deve raggiungere il punto desiderato. La sezione deve esistere o l’applicazione deve riconoscere il frammento. Uno strumento che interroga il sito dal server non conferma da solo che il browser scorra fino a una sezione. Non eliminare tutti i frammenti come soluzione universale: potresti rimuovere proprio la parte necessaria al destinatario.
https://example.invalid/buscar?q=cafe%23te#preciosCodifica una volta il valore, non l’intero indirizzo
RFC 3986 distingue i caratteri che delimitano componenti dai dati e avverte di non codificare o decodificare ripetutamente la stessa stringa. Se passi cafe%26te come testo già codificato a una funzione che si aspetta un valore non codificato, il segno percentuale può diventare %25 e produrre %2526. Hai aggiunto uno strato, senza conservare automaticamente la ricerca desiderata. Le due righe dell’esempio aiutano a riconoscere il cambiamento.
La correzione dipende dall’origine dei dati. Se provengono da testo umano, passali senza codifica all’interfaccia che costruisce parametri. Se provengono da un URL completo valido, non trattarlo come un unico valore per ricodificare tutto l’indirizzo. Documenta ciò che riceve ogni funzione o modulo. Evita sostituzioni globali di %, & o #: potresti alterare delimitatori corretti, parametri necessari o percorsi che non intendevi modificare.
q=cafe%26te
q=cafe%2526teUsa WikiURL per la risposta e il browser per il contenuto
Quando hai un indirizzo pubblico reale, incollalo nello strumento di controllo URL di WikiURL. Esamina lo stato HTTP e la destinazione finale restituiti. L’implementazione interroga dal server e segue i reindirizzamenti; il controllo aiuta a trovare destinazioni inattese. Non incollare link di gestione, password o indirizzi con dati privati. Non provare a controllare example.invalid degli esempi: serve qui come destinazione fittizia.
Apri anche la versione reale nel browser e controlla ricerca e sezione. Una risposta riuscita può caricare la pagina senza applicare il filtro atteso. Se c’è un reindirizzamento, confronta i parametri con il riferimento e osserva il frammento nel browser. Lo strumento non interpreta la logica applicativa, non certifica sicurezza e non dimostra che un account abbia i permessi per vedere il contenuto. L’obiettivo è unire le evidenze della risposta a una verifica funzionale.
Prova la copia che riceverà un’altra persona
Incolla il link finale nel canale di condivisione e apri quella copia prima di distribuirlo ampiamente. Verifica di non aver incluso il punto finale della frase, perso una parte durante la copia o confuso il testo visibile con la destinazione. Quando il contenuto deve essere pubblico, prova senza dipendere dalla sessione amministratore. Se lo converti in QR, controlla anche l’indirizzo mostrato dalla scansione, oltre al file di origine.
Conserva un piccolo registro: indirizzo originale, valore di ricerca atteso, frammento previsto, URL condiviso e risultato osservato. Se fallisce, torna al componente specifico e ripeti la prova dopo averlo corretto. Pubblica solo la versione verificata. Così distingui un problema nella costruzione dei parametri, un reindirizzamento che cambia la destinazione e un comportamento del browser, senza trasformare un link che si apre in garanzia di conservare tutti i dati previsti.