Nota: Este intento de respuesta también es un fracaso; simplemente no funciona. La página oficial de MediaWiki sobre este tema exacto establece lo siguiente:
¡Advertencia! Esta página de URL corta contiene malos consejos sobre cómo configurar tu servidor que podrían llevar a que algunas páginas de tu wiki no funcionen y/o podrían causarte problemas al actualizar.
usar el generador de Redworks, pero parece que eso tampoco funciona. Además, la página oficial de MediaWiki envía mensajes contradictorios sobre lo que podría funcionar. Encontré esta página sobre $wgUsePathInfo
que establece este dato interesante:
Nota: Estos a menudo fallan cuando PHP está configurado en modo CGI. PATH_INFO puede ser correcto si se establece cgi.fix_pathinfo, pero nuevamente puede que no lo sea; lighttpd convierte los datos de ruta entrantes en minúsculas en sistemas con sistemas de archivos insensibles a mayúsculas y minúsculas, y ha habido informes de problemas también en Apache. Para estar seguro, seguiremos manteniéndolo desactivado de forma predeterminada en estos casos.
cgi.fix_pathinfo, pero la estoy publicando aquí como referencia. ¡Si alguien puede publicar una respuesta canónica, adelante y hágalo! ¡Siéntete libre de copiar mi respuesta si es necesario! Solo de alguna forma vamos a resolver este lío.
El resto de la respuesta que no parece funcionar sigue a continuación.
La respuesta publicada por Tgr es excelente, pero si observas la salida de ese generador a través de su configuración predeterminada para Lighted versión 1.5+, esta es la salida:
## MediaWiki
url.rewrite-once = (
"^/wiki(/|$)" => "/w/index.php",
"^/$" => "/w/index.php",
)
# Protegerse contra el bug 28235 (portado del archivo .htaccess de MediaWiki)
$HTTP["url"] =~ "^/w/images/" {
$HTTP["querystring"] =~ "\.[^\\/:*?\x22<>|%]+(#|\?|$)" {
access.deny-all = "enable"
}
}
# Denegar acceso a la carpeta de imágenes eliminadas"
$HTTP["url"] =~ "^/w/images/deleted(/|$)" {
access.deny-all = "enable"
}
# Denegar acceso a las carpetas en las que MediaWiki tiene un .htaccess de denegación"
$HTTP["url"] =~ "^/w/(cache|languages|maintenance|serialized)(/|$)" {
access.deny-all = "enable"
}
# Por si acaso, ocultar .svn y .git también
$HTTP["url"] =~ "/.(svn|git)(|$)" {
access.deny-all = "enable"
}
# Ocultar cualquier archivo .htaccess
$HTTP["url"] =~ "(^|/).ht" {
access.deny-all = "enable"
}
# Descomenta el siguiente código si deseas ocultar el instalador/actualizador
## Denegar acceso al instalador
#$HTTP["url"] =~ "^/w/mw-config(/|$)" {
# access.deny-all = "enable"
#}
Dado que url.rewrite-once
en la parte superior es el mismo entre la configuración del autor original, se puede suponer que el problema está en este fragmento url.rewrite-if-not-file
:
url.rewrite-if-not-file = (
"^/w/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$" => "/w/thumb.php?f=$1&width=$2",
"^/w/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$" => "/w/thumb.php?f=$1&width=$2&archived=1",
)
Por lo tanto, recomendaría simplemente configurar el fragmento inicial de código para Lighted de esta manera:
url.rewrite-once = (
"^/wiki(/|$)" => "/w/index.php",
"^/$" => "/w/index.php",
)
Y la configuracion para LocalSettings.php
parece estar bien tal como está:
$wgScriptPath = "/w";
$wgScriptExtension = ".php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;
Si logras que funcione, luego agrega las otras configuraciones de access.deny-all
para proteger la instalación y deberías estar listo para continuar.
Pero más allá de eso, el problema podría ser que la ruta del autor original a un artículo no es /wiki/
y la ruta relativa al archivo index.php
no es /w/index.php
. Podría ser simplemente /index.php
.
Sí, esto es confuso... Pero algunas ideas para ayudar a otros que intentan lograr este objetivo.