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