lighttpd und mod rewrite rules - da kom ich noch nich ganz klar

Apache, Lighttpd, nginx, Cherokee
malo
Posts: 61
Joined: 2005-01-03 22:40

lighttpd und mod rewrite rules - da kom ich noch nich ganz klar

Post 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!
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53

Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar

Post 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.
malo
Posts: 61
Joined: 2005-01-03 22:40

Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar

Post 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)
Last edited by malo on 2007-01-27 10:44, edited 1 time in total.
miker
Posts: 64
Joined: 2005-03-26 13:33
Location: Wildeshausen

Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar

Post 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.
malo
Posts: 61
Joined: 2005-01-03 22:40

Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar

Post by malo »

hi das oben is der komplette inhalt der newsoase.de.conf

(diese include ich ja in der lighttpd.conf) (der übersicht halber)
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53

Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar

Post by Roger Wilco »

Deine Anführungszeichen sind etwas sehr komisch...
lighttpd will nur das Zollzeichen ".
malo
Posts: 61
Joined: 2005-01-03 22:40

Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar

Post 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!
Last edited by malo on 2006-09-14 13:22, edited 3 times in total.
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53

Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar

Post 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.
malo
Posts: 61
Joined: 2005-01-03 22:40

Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar

Post 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?
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53

Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar

Post 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
malo
Posts: 61
Joined: 2005-01-03 22:40

Re: lighttpd und mod rewrite rules - da kom ich noch nich ganz klar

Post 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