Page 1 of 1
lighttpd und mod rewrite rules - da kom ich noch nich ganz klar
Posted: 2006-09-14 00:49
by malo
hi hab seit heute nun endlich auf lighttpd gewechselt,
funtzt auch alles wunderbar und ist vorallem schnell.
nun häng ich aber denoch bei beim rewriten.
mod_rewrite ist aktiv.
aber ich bekomm die "alten" rules nicht "lighttpd mod_rewrite" gerecht umgeschrieben.
finde auch nicht wirklich ne page mit der ich anhand dieser klar komme.
die alte "Apache" .htaccess sieht wie folgt aus
Code: Select all
RewriteEngine on
RewriteBase /
RewriteRule ^start_([^_]*).html$ script.cgi?a=start&cat=$1
RewriteRule ^i_([^_]*)_([^_]*)_([^_]*)_such.html$ script.cgi?a=view&itemplate=$1&such=1&cat=$2&wort=$3
RewriteRule ^i_([^_]*)_([^_]*)_such.html$ script.cgi?a=view&itemplate=$1&such=1&cat=$2
RewriteRule ^([^_]*)_such.html$ script.cgi?a=view&such=1&cat=$1
RewriteRule ^impressum.html$ script.cgi?a=view&k=1
RewriteRule ^i_([^_]*)_([^_]*)_([^_]*).html$ script.cgi?a=view&such=1&wort=$3&itemplate=$1&cat=$2
RewriteRule ^i_([^_]*)_([^_]*).html$ script.cgi?a=view&such=1&itemplate=$1&cat=$2
RewriteRule ^([^_]*).html$ script.cgi?a=view&such=1&cat=$1
kann mir evtl einer erklären wie die "lighty" konform aussehen müsste? würde mir sehr helfen
Danke!
Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar
Posted: 2006-09-14 01:52
by Roger Wilco
Du hast keine exotischen Rewrite Regeln in deiner .htaccess, die "Portierung" sollte also recht einfach sein. Du könntest die Regeln fast 1:1 übernehmen. Schau dir einfach mal das Beispiel unter
http://trac.lighttpd.net/trac/wiki/Docs ... e#examples an.
Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar
Posted: 2006-09-14 09:50
by malo
hi hab jetzt ma in einer conf folgendes stehen:
$HTTP["host"] =~ "(^www.domain.de|^domain.de)" {
server.indexfiles = ( "index.php","index.html" )
server.document-root = "/var/www/domain.de/html"
server.error-handler-404 = "/error404.php"
accesslog.filename = "/var/www/domain.de/log/access.log"
url.rewrite-once = (
"^/faq(.*).html" => "script.cgi?a=view&k=4?"
)
}
also aufrufe von script.cgi?a=view&k=4 sollen in faq.html umgewandelt werden
beim lighty restarten kommt dann aber immer die meldung:
2006-09-14 09:59:09: (configfile.c.746) source: /etc/lighttpd/ de.conf line: 7 pos: 1 invalid character in variable name
2006-09-14 09:59:09: (configfile.c.802) configfile parser failed: (
2006-09-14 09:59:09: (configfile.c.805) source: /etc/lighttpd/lighttpd.conf line: 264 pos: 1 parser failed somehow near here: (EOL)
Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar
Posted: 2006-09-14 10:30
by miker
/etc/lighttpd/newsoase.de.conf line: 7
Was steht da und vllt. noch in den 2-3 Zeilen davor?
/etc/lighttpd/lighttpd.conf line: 264
Das Gleiche wie oben.
Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar
Posted: 2006-09-14 10:32
by malo
hi das oben is der komplette inhalt der newsoase.de.conf
(diese include ich ja in der lighttpd.conf) (der übersicht halber)
Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar
Posted: 2006-09-14 11:25
by Roger Wilco
Deine Anführungszeichen sind etwas sehr komisch...
lighttpd will nur das Zollzeichen ".
Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar
Posted: 2006-09-14 13:11
by malo
hi die ersten rules hab ich jetzt erfolgreich umgeschrieben mit:
Code: Select all
url.rewrite-once = (
"impressum.html" => "newsgrabber.cgi?a=view&k=1",
"mediadaten.html" => "newsgrabber.cgi?a=view&k=2",
"linkgenerator.html" => "newsgrabber.cgi?a=view&k=3",
"faq.html" => "newsgrabber.cgi?a=view&k=4"
)
das klappt auch jetzt aber bei folgenden rules komm ihc nicht weiter,
wie müsste aber z.b:
Code: Select all
RewriteRule ^smilie_(.*)_(.*)_(.*)_(.*)_(.*)_(.*).png$ quote.php?smilie=$1&mytext=$2&schriftgroesse=$3&textfarbe=$4&umrandung=$5&hintergrund=$6 [QSA,L]
und
aussehen ? da sbekomm ich nicht hin :(
Code: Select all
RewriteCond %{REQUEST_URI} .gif$
RewriteRule ^dyn_([^_]+)_([^_]+)_([^_]+)_([^_]+)_([^_]+)_([^_]+)_([^_]+)_([^_]+)_([^_]+).gif$ generate.php?sm=$1&au=$2&mu=$3&x1=$4&y1=$5&x2=$6&y2=$7&s1=$8&s2=$9
und
Code: Select all
RewriteRule ^smilie_(.*)_(.*)_(.*)_(.*)_(.*)_(.*).png$ quote.php?smilie=$1&mytext=$2&schriftgroesse=$3&textfarbe=$4&umrandung=$5&hintergrund=$6 [QSA,L]
danke schon mal für eure hilfen!
Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar
Posted: 2006-09-14 13:18
by Roger Wilco
Die Option QSA lässt sich in lighttpd nicht umsetzen.
Die RewriteCondition kannst du mit einem Matching gegen $HTTP["url"] umsetzen. Alle anderen RewriteRules sollten sich problemlos übernehmen lassen.
Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar
Posted: 2006-09-14 13:22
by malo
Roger Wilco wrote:Die Option QSA lässt sich in lighttpd nicht umsetzen.
Die RewriteCondition kannst du mit einem Matching gegen $HTTP["url"] umsetzen. Alle anderen RewriteRules sollten sich problemlos übernehmen lassen.
ok ma testen
hab noch ein kleines problem mit der fehlermeldung
" Duplicate array-key: ([^_]*).html" (beim lighty restarten)
hab folgende rewrite rule
Code: Select all
"([^_]*).html" => "newsgrabber.cgi?a=view&such=1&cat=$1",
"([^_]*).html" => "newsgrabber.cgi?a=view&cat=$1"
ich möchte aber das egal ob ich mit "such=1" oder ohne, das dann das ganze in name.html umgewandelt wird (damit es jetzt läuft muss ich einen eintrag oben löschen (wegen duplicate)
wie bekomm ich des hin, das beides geht?
Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar
Posted: 2006-09-14 13:27
by Roger Wilco
Malo wrote:ich möchte aber das egal ob ich mit "such=1" oder ohne, das dann das ganze in name.html umgewandelt wird (damit es jetzt läuft muss ich einen eintrag oben löschen (wegen duplicate)
wie bekomm ich des hin, das beides geht?
Du hast da einen Denkfehler. Entweder name.html wird in "newsgrabber.cgi?a=view&such=1&cat=name" umgewandelt oder in "newsgrabber.cgi?a=view&cat=name". Aber beides gleichzeitig geht einfach nicht.
Nochmal zum Verständnis: Der Benutzer gibt
http://example.org/name.html ein, der Webserver verarbeitet aber
http://example.org/newsgrabber.cgi?a=view&cat=name
Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar
Posted: 2006-09-17 15:26
by malo
jo hatte denk fehler denoch is es komisch
"_([^_]*)_([^_]*).html" => "newsgrabber.cgi?a=view&such=1&cat=$1&news=&start=$2",
funktioniert , seiten sind also per _Name_100.html erreichabr
wenn ich aber
"([^_]*)_([^_]*).html" => "newsgrabber.cgi?a=view&such=1&cat=$1&news=&start=$2",
mache, also den "_" ganz vorne wegmache, sind die seiten NICHT unter Name_100.html erreichbar...
weiß einer wieso? ich muss immer eine "feste" angabe vor den "variablen" haben. das möcht ich aber nicht.
weiß einer wo das problem liegen kann?
die orignal .htaccess rule war: (da gehts ja gings ja auch ohne eine "feste"
RewriteRule ^([^_]*)_([^_]*).html$ newsgrabber.cgi?a=view&such=1&cat=$1&news=&start=$2