Strona 1 z 1
Lighty i rewrite
: 31 maja 2009, 01:12
autor: ruun
Na serwerze za http odpowiada Lighttpd. Próbuję na nim zrobić przepisywanie adresów (rewrite).
Mam taką regułkę
Kod: Zaznacz cały
url.rewrite-once = (
"/(.*)\.(.*)" => "$0",
"/(css|pliki|img|js)/" => "$0",
"^/([^.]+)$" => "/index.php?p=$1",
"^pobierz/([^.]+)/?$" => "/pobierz.php?plik=$1"
)
Działają linki postaci
Kod: Zaznacz cały
strona.pl/kontakt --> strona.pl/index.php?p=kontakt
a takie nie działają
Kod: Zaznacz cały
strona.pl/pobierz/pomiary/cennik.pdf --> strona.pl/pobierz.php?plik=pomiary/cennik.pdf
Zapewne błąd mam tu
Co robię źle?
: 31 maja 2009, 02:26
autor: ponton
A na co ma się przepisywać ta czwarta reguła?
: 31 maja 2009, 08:40
autor: ruun
Czwarta reguła, czyli
"^pobierz/([^.]+)/?$" => "/pobierz.php?plik=$1"
przepisuje
na
a błąd jest w pierwszej części (pogrubionej) ale ja nie wiem jaki.
: 31 maja 2009, 15:44
autor: ponton
Ale jak powinna przepisywać? Chodzi np. o:
Kod: Zaznacz cały
/pobierz/coś/tam/plik.txt => /pobierz/php?plik=plik.txt
To w takim razie czy nie zadziała:
Kod: Zaznacz cały
"^pobierz/.*/([^/]+)$" => "/pobierz.php?plik=$1"
: 31 maja 2009, 17:26
autor: ruun
ponton pisze:Ale jak powinna przepisywać?
Napisałem w pierwszym poscie.
Kod: Zaznacz cały
strona.pl/pobierz/pomiary/cennik.pdf --> strona.pl/pobierz.php?plik=pomiary/cennik.pdf
całość za
pobierz/ ma przerzucić do zmiennej plik w pobierz.php.
ponton pisze:To w takim razie czy nie zadziała
Niestety nie działa.
: 31 maja 2009, 18:26
autor: ponton
Napisałem w pierwszym poscie.
To źle Cię zrozumiałem...
Pierwszy błąd to chyba brak "/" na początku. Robisz od razu "^pobierz" zamiast "^/pobierz". Druga rzecz, to nie wiem, co ma robić "[^.]" -- "^" oznacza dopełnienie zbioru, więc "[^.]" oznacza nic (dopełnienie wszystkiego).

I ostatnia sprawa to "/" na końcu, który w ogóle się nie zmatchuje w tym przypadku.
To powinno działać:
: 31 maja 2009, 19:58
autor: ruun
ponton pisze:To powinno działać:
Jak sprawdzam na
http://www.regexp.net to działa ale na serwerze nie chodzi. Cały czas dostaję błąd 404.
: 31 maja 2009, 23:20
autor: ponton
: 01 czerwca 2009, 20:27
autor: ruun
Nadal to samo - 404.