« »
Dec 04

MediaWiki es, probablemente, el motor para wikis más conocido del mundo. Originalmente creado para la Wikipedia actualmente es usado por una gran cantidad de wikis que nada tienen que ver con dicha fundación. La instalación por defecto del MediaWiki configura unas URLs no muy apropiadas en los tiempos que corren (con scripts PHP visibles y parámetros por GET) pero que tienen la ventaja de funcionar correctamente en un mayor número de servidores. Si dispones de mod_rewrite a continuación describo una forma de hacer estas URLs un poco más “bonitas” y cortas.

Acerca de este tema existe mucha documentación y en el apartado correspondiente del manual puedes encontrar varias alternativas. Después de haber trabajado con varias wikis en estos últimos años la que encuentro mejor es la siguiente.

Modificar LocalSettings.php

Se debe sustituir el valor de la variable $wgArticlePath por:

[php] $wgArticlePath = “/$1”; [/php]

y si no tienes definida esta variable se debe añadir en un lugar cercano a la definición de $wgScriptPath.

Modificar .htaccess

Añadir las siguientes lineas a tu .htaccess:

RewriteEngine On
RewriteBase /
RewriteRule ^$ http://www.ejemplo.com/Portada [R=301,L]
RewriteRule ^[^:]*\. - [L]
RewriteRule ^[^:]*\/ - [L]
RewriteRule ^(.+)$ /mediawiki/index.php?title=$1 [L,QSA]

Las URLs resultantes tienen la forma:

http://www.ejemplo.com/Portada para la Home.
http://www.ejemplo.com/Prueba para una página llamada “Prueba”.

Consideraciones

Este método funciona correctamente en distintos escenarios aunque se han de tener en cuenta algunas consideraciones:

[1] La wiki debe estar instalada en el directorio “mediawiki”. Si la tienes en otro directorio sustituye “mediawiki” por el nombre apropiado en las anteriores reglas de mod_rewrite.

[2] Si alguien accede a la raíz del dominio es redirigido a “/Portada” con una redirección permanente (301).

[3] Si el nombre de tu wiki contiene un punto (p.e. Ejemplo.com) fallarán los accesos a algunas páginas especiales. Para forzar que las páginas especiales que usan el nombre de la wiki en la URL se procesen correctamente es necesario añadir la siguiente regla justo después de la redirección a la Portada:

RewriteRule ^Ejemplo\.com(.+)$ /mediawiki/index.php?title=Ejemplo.com$1 [L,QSA]

Be Sociable, Share!
Tagged with:

5 Responses to “MediaWiki con URLs cortas usando mod_rewrite”

  1. Fran says:

    ¡Muchas gracias! Andaba buscando como hacerlo, ya que había seguido algunos tutoriales pero nunca me habían llegado a funcionar.

  2. […] Link: MediaWiki con URLs cortas […]

  3. Gustavo says:

    Wiki en el raiz:
    .htaccess
    RewriteEngine On
    RewriteBase /
    RewriteRule ^$ http://www.sitio.com/Portada [R=301,L]
    RewriteRule ^[^:]*\. – [L]
    RewriteRule ^[^:]*\/ – [L]
    RewriteRule ^(.+)$ /index.php?title=$1 [L,QSA]
    RewriteRule ^sitio\.com(.+)$ /index.php?title=sitio.com$1 [L,QSA]

  4. Oriol says:

    @Gustavo
    Pues justo lo que dice el post ¿no? Puedes sustituir “mediawiki” por el nombre del directorio donde tengas la wiki o por nada si está en la raíz.

  5. […] Phpbsd. Mediawiki con URLs cortas usando mod_rewrite […]

Leave a Reply

preload preload preload