Routovanie a Lighttpd

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
yogiman321
Člen | 11
+
0
-

Pomaly sa dostavam ku zaverecnym pracam na mojom projekte a jednou z nich je routovanie. Ako web server pouzivam lighttpd. Po nastaveni routes mi Ladicka hadze 404-ku hoci mam v serveri handler pre 404 nastaveny na index.php. V access logu serveru mi vypisuje 500-vku GET / HTTP/1.1" 500 28709 a v errorlogu serveru nepise nic.

$router[] = new Route('index.php', array(
           'presenter' => 'Default',
           'action' => 'default',
	), Route::ONE_WAY);

$router[] = new Route('blog/<id>', array(
          'presenter' => 'Default',
          'action' => 'read',
	));

Pouzivate niekto lighttpd v spojeni s nejakou nette aplikaciou a fancy routovanim?
Ak ano, mozete tu ukazat funkcne nastavenie serveru?

EDIT: Vsetko funguje ako ma, len som spanikaril a unahlil sa. Neroutovalo mi http://aplikacia/ na Default presenter

Editoval yogiman321 (26. 6. 2009 1:32)

sodae
Nette Evangelist | 250
+
0
-

chvíly jsem si hrál a v configu je potřeba nastavit a restartovat

url.rewrite-once = (  "^/(.*)\.([a-zA-Z0-9]+)$" => "$1.$2",
                      "^/.*" => "/index.php"
                      )
edke
Člen | 198
+
0
-

rewrite pri lighttpd ma iste obmedzenia, riesit sa to da cez skriptovaci jazyk lua a magnet module. je potrebne pridat magnet do modules:

server.modules              = (
...
            "mod_magnet",
...
)

virtualhost potom moze vyzerat napriklad takto:

$HTTP["host"] =~ "^(example.com)$" {
        server.document-root = "/var/www/example.com/document_root"
        magnet.attract-physical-path-to = ( server.document-root + "/rewrite.lua" )
}

a nakoniec subor rewrite.lua v document_root foldri (nieco ako .htaccess pri apache):

attr = lighty.stat(lighty.env["physical.path"])
if (not attr) then
   lighty.env["uri.path"] = "/index.php"
   lighty.env["physical.rel-path"] = lighty.env["uri.path"]
   lighty.env["physical.path"] = lighty.env["physical.doc-root"] .. lighty.env["physical.rel-path"]
end

-- print ("final file is " ..  lighty.env["physical.path"])

je to alternativa pre testy !-f a !-d v .htaccess pre apache. rewrite v lighttpd nevie testovat existenciu suboru/adresara.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]

ak by niekto potreboval dalsiu pomoc, kludne sa ozvite. chvilu to trvalo rozbehat projekt pod lighttpd tak, aby behalo vsetko tak ako pod apache ale vysledok stoji zato. lightty naklada s resources ovela efektivnejsie a to sa samozrejme patricne prejavilo na vykone.