Ocultar index.php no subdiretório após reescrever (lighttpd)

1

Como está configurado agora

Eu tenho um site que é configurado para URLs limpos com o mod_rewrite do apache assim:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L,QSA]

O site também usa um CMS chamado Cockpit, que mora sob meu diretório público com um arquivo .htaccess similar para suas URLs limpas:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

Em ambos os casos RewriteEngine On também está presente (claro).

Agora, no apache, isso resulta em URLs do meu site sendo reescrito como este

http://domain.com/a
http://domain.bom/b

e as URLs do cockpit são praticamente as mesmas:

http://domain.com/cockpit/a
http://domain.com/cockpit/b

O que estou procurando em Então, eu tenho procurado deixar o apache para trás para o lighttpd e tenho andado por aí com a sintaxe e a configuração do mod_rewrite, mas me deparei com um problema em que as URLs do cockpit não estão totalmente limpas. É assim que eu o configurei no lighttpd:

$HTTP["host"] == "domain.com" {
        server.document-root = "/var/www/domain.com/public_html"
        index-file.names = ( "index.php" )
        $HTTP["url"] =~ "^(\/cockpit)(\/[a-zA-Z0-9\.]*)*$" {
                url.rewrite-if-not-file = ( "^(.*)$" => "/cockpit/" )
        } else $HTTP["url"] !~ "^(\/cockpit)(\/[a-zA-Z0-9\.]*)*$" {
                url.rewrite-if-not-file = ( "^(.*)$" => "/index.php" )
        }
}

Esta configuração funciona, mas as URLs do cockpit são agora estas:

http://domain.com/cockpit/index.php/a
http://domain.com/cockpit/index.php/b

Eu gostaria de me livrar da parte index.php do URL como o apache, mas não consegui fazer isso funcionar corretamente.

Alguém tem alguma idéia sobre esse assunto? s

    
por Liam Martens 21.01.2016 / 01:14

0 respostas