La situación es la siguiente: tenemos una Wiki creada con MediaWiki y queremos que una o varias de las páginas tenga una redirección 301 hacia una URL externa a la de la Wiki. Por ejemplo porque estamos pasando contenido de MediaWiki a otro entorno como puede ser WordPress.
Como ha sido un tema que me ha consumido unas cuentas horas de i+d quiero dejar aquí un paso a paso lo más detallado posible para que sirve de ayuda a otras personas que necesiten hacer lo mismo.
Un dato previo que ayuda a entender las siguientes instrucciones es que una página de una MediaWiki solo puede ser redirigida si está en un espacio de nombres protegido contra escritura, en las siguientes instrucciones se verá cómo crearlo y cambiar la página.
Paso a Paso
- Descargar la extensión ExternalRedirect para MediaWiki
- Descomprimir el archivo ExternalRedirect-master.zip
- Renombrar la carpeta ExternalRedirect-master a ExternalRedirect
- Subir la carpeta ExternalRedirect al directorio Extensions de nuestra Wiki
- Abrir el archivo LocalSettings.php y añadir las siguientes líneas:
#Define namespaces
$wgExtraNamespaces[NS_MOVED] = «Moved»;
$wgNamespaceProtection[NS_MOVED]=array(‘redirector’);
$wgNamespacesWithSubpages[NS_MOVED]=false;
$wgGroupPermissions[‘sysop’][‘redirector’]=true;
require_once(«$IP/extensions/ExternalRedirect/ExternalRedirect.php»);
$wgExternalRedirectNsIDs = array(3000);
Aquí lo que hacemos es habilitar la extensión con require_once y definir un Espacio de nombre protegido para la escritura llamado Moved.
- Ir a la página que se quiere redireccionar borrar el contenido menos las categorías e insertar el siguiente código en la primera línea: {{#externalredirect: http://www.midominio.com/mipagina}}
- En la parte superior hacer clic en Más>Trasladar.
- En Título nuevo seleccionar en el desplegable Moved, el namespace protegido que creamos en el LocalSettings.php (punto 5). Hacer clic en renombrar la página.
Con esto ya se habrá producido la redirección de la página como podéis comprobar. Espero que sea lo suficientemente claro, si no es así ponerme un comentario y lo detallo más.