Ciao,
È possibile reindirizzare automaticamente tutte le pagine 404 non trovate alla home page o a un’altra pagina?
Saluti
Ciao,
È possibile reindirizzare automaticamente tutte le pagine 404 non trovate alla home page o a un’altra pagina?
Saluti
Poiché Discourse non utilizza htaccess, non sono sicuro di dove cercare una soluzione. Qualsiasi aiuto sarebbe apprezzato ![]()
Suppongo che potresti essere in grado di creare un plugin per raggiungere questo obiettivo?
Potrebbe creare confusione reindirizzare immediatamente, quindi perché non modificare il percorso 404 per reindirizzare alla home page dopo un breve intervallo con un messaggio corrispondente?
Potrebbe funzionare, ma non so come farlo ![]()
C’è qualche plugin per questo?
Ne dubito. Potresti Marketplace
Htaccess non dovrebbe essere utilizzato comunque, anche se ci fosse Apache2 davanti a Discourse — e non c’è.
Docker complica la vita
e non so come gestirlo. Ma puoi mettere Nginx (o qualsiasi altro server/reverse proxy) davanti a Discourse se vuoi. E allora tale reindirizzamento dovrebbe essere un compito abbastanza banale. Puoi fare qualcosa del genere:
Ma perché vorresti reindirizzare i 404 alla home page in primo luogo? Se un utente sta cercando qualcosa e ottiene la home page invece di ciò che voleva o un 404, è un po’ confusionario. E dopo lo stesso utente ci riproverà perché forse ha fatto qualcosa di sbagliato o quel sito aveva un problema. Totalmente non necessario e c’è un motivo per cui ogni sito dovrebbe mostrare un errore 404 invece di qualche strano reindirizzamento.
Sto migrando il mio blog WordPress a Discourse. Ora, a causa della diversa struttura dei link, ci saranno tonnellate di pagine 404 dopo la migrazione. Non posso impostare un reindirizzamento per ciascuna di esse manualmente, quindi ho bisogno di una soluzione per farlo automaticamente.
Sì, ma non è una soluzione. È una correzione pessima, niente di più. La struttura del tuo URL sarebbe ancora rotta ma la stai solo nascondendo. E no, non puoi trasferire valore SEO in quel modo ;)\n\nComunque, hai un server lì. Prova a usarlo?
Se si utilizzasse un sottodominio diverso per i siti Wordpress e Discourse, probabilmente sarebbe possibile farlo lato server Wordpress.
È possibile modificare page_not_found.title (originariamente “Oops! That page doesn’t exist or is private.”) – è un peccato per te che non ci sia qualcosa come page_not_found.content che ti permetterebbe di spiegare la situazione in dettaglio.
Quell’opzione non comporta alcun tipo di reindirizzamento, se non erro.
Qualunque cosa quei link puntino… verrà migrato su Discourse? Ad esempio, se quei link puntano a post del blog, che stai trasformando in argomenti, allora potresti creare permalink: Redirect old forum URLs to new Discourse URLs using permalinks
Potresti anche rimappare quegli URL a qualcos’altro. Supponendo che gli URL abbiano una formattazione comune, potresti usare REGEX e il comando remap per sostituirli:
remap [--global,--regex] FROM TO
Un esempio su come usare il comando:
discourse remap --regex "[/?color(=[^\]]*)*]" "" # rimozione dei bbcode "color"
A meno che ciò non venga fatto sul server di WordPress se si vogliono accontentare sia Google che gli utenti.
5 post sono stati spostati in un nuovo argomento: Come reindirizzo alla homepage dopo l’eliminazione di un argomento?
Puoi gestire tutte le pagine 404 non trovate reindirizzandole alla home page o a un’altra pagina utilizzando la funzione “Personalizza”.
Vai alla sezione Personalizza > Temi > Crea Nuovo Tema > dai un nome al tuo tema, ad esempio Reindirizzamento 404 e imposta il Tema Base su Predefinito.
Quindi crea il nuovo tema > Modifica CSS/HTML. Nella sezione HTML, crea uno snippet JavaScript che gestirà il reindirizzamento.
Incolla questo codice.
<script type="text/discourse-plugin">
api.onPageChange((url, title) => {
// Reindirizza alla home page per tutte le pagine 404
if (url.includes('/404')) {
window.location.href = '/';
}
});
</script>
Si prega di adattare il nome della pagina secondo le proprie esigenze. Leggi questo reindirizza vecchi URL a nuovi URL di discourse