Spesso mi capita di cimentarmi nella definizione di regole di riscrittura degli URL (Rewrite Rules). Negli ultimi giorni mi è stato chiesto come dirottare una precisa pagina di WordPress verso un particolare sito web.
La soluzione è servita!
Presupponendo che l’installazione di wordpress si presenta con la modalità predefinita di permalink (?page_id=0000) si vuole dirottare la pagina con ID 1234 verso il sito http://example.com.
Ecco le considerazioni da cui partire:
- Si presuppone che sul webserver sia installato e ben configurato il modulo mod_rewrite di Apache.
- La struttura dell’url costruito da WordPress per arrivare alla pagina 1234 è http://miosito.it/?page_id=1234
- La regola dovrà prevedere che tutte le richieste che arrivano alla suddetta pagina dovranno essere dirottate verso il sito http://example.com
- Per una corretta indicizzazione sui motori di ricerca la pagina 1234 dovrà rispondere con un codice di Redirect 301 (la pagina è stata trasferita altrove)
La regola di rewrite da utilizzare per il suddetto scopo è la seguente:
RewriteEngine on RewriteCond %{QUERY_STRING} page_id=1234 RewriteRule .* http://example.com [R=301,L]
Maggiori informazioni sulle Rewrite Rules e sul mod_rewrite potete trovarle nella documentazione ufficiale.
Commenti
2 risposte a “Dirottare una pagina di WordPress verso un sito esterno”
Fantastico, complimenti..ma mi sfugge un particolare..come la si formatta la pagina sull’altro sito? Io sposto questa pagina http://www.menabonews.it/storm/ cliccando AMMINISTRATIVE 2012 INTERVISTE ed apro http://www.menabonews.it/notizieprima/screamfromthestorm.php?page_id=41 ma non mi ripropone gli articoli di wordpress. Come gli richiamo nel codice? scusa magari è banale..ti saluto e ti ringrazio
Ciao Pierre, grazie per i complimenti, penso che il problema sia legato al link specificato nell’htaccess che è differente rispetto a quello da te indicato nel commento.
La formattazione invece è altra cosa: la struttura del sito di destinazione non è condizionata dal sito di provenienza. Ma forse sono io che ho compreso male la tua domanda.