404 ao tentar encurtar URLs para o MediaWiki com o Lighttpd

3

Eu sou absolutamente novo nisso, então por favor, tenha paciência comigo. Eu instalei o MediaWiki no Lighttpd sem problemas, exceto que quando tento acompanhar as instruções do redwerks sobre como encurtar os URLs para o MediaWiki no Lighttpd, eu sempre obtenho um 404 muito frustrante. Foi isso que fiz:

em lighttpd.conf :

## MediaWiki
url.rewrite-once = (
    "^/wiki(/|$)" => "/w/index.php",
    "^/$" => "/w/index.php",
)
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",
)

em LocalSettings.php:

$wgScriptPath = "/w";
$wgScriptExtension = ".php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;

A ajuda é tão apreciada que eu posso começar a chorar em breve.

    
por MajestosoAlce 19.08.2015 / 19:59

2 respostas

2

O método livre de choro está usando o gerador de configuração da Redwerks.

    
por 23.08.2015 / 04:29
0

Observação: essa tentativa de resposta também é uma falha; Simplesmente não funciona. A página oficial do MediaWiki sobre este tópico exato afirma o seguinte:

Warning: This Short URL page contains bad advice on how to configure your server that could lead to some pages on your wiki not working and/or may cause you issues while upgrading.

Ele vai para sugerir usando o gerador Redworks , mas isso ainda não parece funcionar. Além disso, a página oficial do MediaWiki envia mensagens mistas sobre o que pode funcionar. Eu encontrei esta página em $wgUsePathInfo que indica este interessante boato:

Note: These often break when PHP is set up in CGI mode. PATH_INFO may be correct if cgi.fix_pathinfo is set, but then again it may not; lighttpd converts incoming path data to lowercase on systems with case-insensitive filesystems, and there have been reports of problems on Apache as well. To be safe we'll continue to keep it off by default in these instances.

Ainda não testamos essa ideia de cgi.fix_pathinfo , mas postamos isso aqui como referência. Se alguém puder postar uma resposta canônica, por favor, vá em frente e faça isso! Sinta-se à vontade para copiar minha resposta, se necessário! De alguma forma, vamos resolver esse problema.

O restante da resposta, que parece não funcionar, segue abaixo.

A resposta postada por Tgr é excelente, mas se você observar a saída desse gerador por meio de suas configurações padrão para Versão iluminada 1.5+, esta é a saída:

## MediaWiki
url.rewrite-once = (
    "^/wiki(/|$)" => "/w/index.php",
    "^/$" => "/w/index.php",
)

# Protect against bug 28235 (ported from MediaWiki's .htaccess file)
$HTTP["url"] =~ "^/w/images/" {
    $HTTP["querystring"] =~ "\.[^\/:*?\x22<>|%]+(#|\?|$)" {
        access.deny-all = "enable"
    }
}

# Deny access to deleted images folder"
$HTTP["url"] =~ "^/w/images/deleted(/|$)" {
    access.deny-all = "enable"
}

# Deny access to folders MediaWiki has a .htaccess deny in"
$HTTP["url"] =~ "^/w/(cache|languages|maintenance|serialized)(/|$)" {
    access.deny-all = "enable"
}

# Just in case, hide .svn and .git too
$HTTP["url"] =~ "/.(svn|git)(|$)" {
    access.deny-all = "enable"
}

# Hide any .htaccess files
$HTTP["url"] =~ "(^|/).ht" {
    access.deny-all = "enable"
}

# Uncomment the following code if you wish to hide the installer/updater
## Deny access to the installer
#$HTTP["url"] =~ "^/w/mw-config(/|$)" {
#   access.deny-all = "enable"
#}

Vendo que url.rewrite-once no topo é o mesmo entre a configuração original do post, pode-se assumir que o problema é este url.rewrite-if-not-file chunk:

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",
)

Então, eu recomendaria simplesmente configurar o bloco inicial de código para o Lighted assim:

url.rewrite-once = (
    "^/wiki(/|$)" => "/w/index.php",
    "^/$" => "/w/index.php",
)

E as configurações de LocalSettings.php parecem bem:

$wgScriptPath = "/w";
$wgScriptExtension = ".php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;

Se você conseguir fazer isso funcionar, adicione o outro access.deny-all stuff para bloquear a instalação e você deve estar pronto.

Mas depois disso, o problema pode ser que o caminho original dos pôsteres para um artigo não é /wiki/ e o caminho relativo para o arquivo index.php não é /w/index.php . Pode ser simplesmente /index.php .

Sim, isso é confuso ... Mas algumas ideias ajudam os outros a tentar atingir esse objetivo.

    
por 01.08.2016 / 08:33