-
1. Data: 2009-04-10 11:59:42
Temat: lighttpd i rewrite z pominieciem istniejacych plikow
Od: patrykd <p...@i...pl>
witam
jak zmontowac regule w lighttpd, ktora bedzie przekierowala wszystko
co nie istnieje fizycznie do jednego pliku?
http://sub1.domain.com ma kierowac na /www/sub1.php
http://sub2.domain.com => /www/sub2.php
http://sub3.domain.com => /www/sub3.php
itd.
czyli wybrane poddomeny kieruja do jednego katalogu, tylko prowadza na
inne pliki, z tym ze jesli istnieje plik http://sub2.domain.com/css/main.css,
to juz nie ma przekierowania na sub2.php, tylko na istniejacy plik, a
jesli bedzie http://sub2.domain.com/css/main.js (ktory nie istnieje),
to przejmuje to sub2.php i na swoj sposob mieli.
obecnie robie to mniej wiecej tak:
$HTTP["host"] == "www.sub1.domain.com" {
url.redirect = ( "^/(.*)" => "http://sub1.domain.com/$1" )
}
$HTTP["host"] == "sub1.domain.com" {
server.document-root = "/www/"
url.rewrite = ( "^/(.*\.css(\?.*)?|.*\.js(\?.*)?|.*\.png|.*\.php
(\?.*)?|.*\.htm|.*\.html|.*\.gif|.*\.jpg)$" => "/$1", "^/.*$" => "/
sub1.php" )
}
i analogicznie dla sub2 itd. (w oddzielnych regulkach, bo nie
wszystkie maja prowadzic do tego samego katalogu), jednak wolalby,
zeby zalatwic to wlasnie jakas regula, ktora sprawdza, czy istnieje
plik, bo powyzej np. nie ma rozszerzenia .txt, a jesli istnialby plik
sub2.domain.com/robots.txt, to kierowaloby to na sub2.php (dopoki nie
dodalbym rozszerzenia do regulki).
pozdr.
-
2. Data: 2009-04-10 13:45:33
Temat: Re: lighttpd i rewrite z pominieciem istniejacych plikow
Od: porneL <n...@p...net>
On Fri, 10 Apr 2009 12:59:42 +0100, patrykd <p...@i...pl> wrote:
> witam
>
> jak zmontowac regule w lighttpd, ktora bedzie przekierowala wszystko
> co nie istnieje fizycznie do jednego pliku?
server.error-handler-404 = "/error-404.php"
lighttpdowy mod_rewrite tego nie jest w stanie wykonać.
Jak handler 404 ci nie pasuje, to możesz użyć mod_magnet z kawałkiem skryptu lua, np:
if (not lighty.stat(lighty.env["physical.path"])) then
lighty.env["physical.rel-path"] = "/rewrite.php"
lighty.env["physical.path"] = lighty.env["physical.doc-root"] ..
lighty.env["physical.rel-path"]
end
--
http://pornel.net
this.author = new Geek("porneL");