htaccess und lighttpd

Snurfy

New Member
Hi,

ich muss meine htaccess-Einträge für lighttpd umschreiben. Ich habe mir schon mehrere Anleitungen durchgelesen, habe in mehreren Foren nachgefragt und war sogar schon im IRC von lighttpd. Doch fast immer wurde ich angemacht das ich die Anleitungen lesen soll.. Richtig geholfen wurde mir noch nie. Daher jetzt nochmal ein Versuch. ;)

Hier die htaccess-Regeln:

Code:
RewriteEngine On
RewriteRule ^out-frame-id([0-9]*)-(.*).html$ out.php?plug=$1&frame=1&base=0
RewriteRule ^out-sticky-frame-id([0-9]*)-(.*).html$ out.php?id=$1&frame=1&base=0&sticky=$1
RewriteRule ^out-sticky-id([0-9]*)-(.*).html$ out.php?id=$1&base=0&sticky=$1
RewriteRule ^out-static-id([0-9]*)-(.*).html$ out.php?id=$1&base=0
RewriteRule ^out-id([0-9]*)-(.*).html$ out.php?plug=$1&base=0
RewriteRule ^out-site([0-9]*)-(.*).html$ out.php?site=$1&base=0
RewriteRule ^hosted-id([0-9]*)-(.*).html$ hosted/media/$2,$1.php
RewriteRule ^page-(.*).html$ custom/$1.php
RewriteRule ^user-(.*).html$ profiles.php?user=$1
RewriteRule ^comments-id([0-9]*)-(.*).html$ comments/$2,$1.php
RewriteRule ^search-page([0-9]*)-(.*).html$ search.php?term=$2&page=$1
RewriteRule ^out-sponsor-id([0-9]*).html$ sponsors.php?id=$1
RewriteRule ^(.*)-(.*)-page([0-9]*).html$ $2/$1/$3.php
RewriteRule ^profiles-page([0-9]*).html$ profilepages.php?page=$1
RewriteRule ^(.*)-page([0-9]*).html$ $1/news/$2.php
RewriteRule ^register.html$ register.php
RewriteRule ^login.html$ login.php
RewriteRule ^logout.html$ logout.php
RewriteRule ^panel.html$ userpanel.php
RewriteRule ^edit.html$ edit.php

Und diese hab ich nun so umgeschrieben:

Code:
url.rewrite-once = (
"out-frame-id([0-9]+)-(.+).html$" => "out.php?plug=$1&frame=1&base=0",
"out-sticky-frame-id([0-9]+)-(.+).html$" => "out.php?id=$1&frame=1&base=0&sticky=$1",
"out-sticky-id([0-9]+)-(.+).html$" => "out.php?id=$1&base=0&sticky=$1",
"out-static-id([0-9]+)-(.+).html$" => "out.php?id=$1&base=0",
"out-id([0-9]+)-(.+).html$" => out.php?plug=$1&base=0",
"out-site([0-9]+)-(.+).html$" => "out.php?site=$1&base=0",
"hosted-id([0-9]+)-(.+).html$" => "hosted/media/$2,$1.php",
"page-(.+).html$" => "custom/$1.php",
"comments-id([0-9]+)-(.+).html$" => "comments/$2,$1.php",
"search-page([0-9]+)-(.+).html$" => "search.php?term=$2&page=$1",
"out-sponsor-id([0-9]+).html$" => "sponsors.php?id=$1",
"(.+)-(.+)-page([0-9]+).html$" => "$2/$1/$3.php",
"profiles-page([0-9]+).html$" => "profilepages.php?page=$1",
"(.+)-page([0-9]+).html$" => "$1/news/$2.php",
"register.html$" => "register.php",
"login.html$" => "login.php",
"logout.html$" => "logout.php",
"panel.html$" => "userpanel.php",
"edit.html$" => "edit.php",
)
}

Wenn ich diese aber nur dem Server übergebe, bekomme ich einen Fehler.. Also muss irgendwo noch ein Fehler versteckt sein.

Vielleicht weiß ja hier noch jemand rat?

Gruß & Danke!
 
Klar. ;)

Code:
Stopping web server: lighttpd.
Starting web server: lighttpd2010-04-04 14:20:54: (configfile.c.855) source: /etc/lighttpd/lighttpd.conf line: 282 pos: 43 parser failed somehow near here: ^out-sticky-frame-id([0-9]+)-(.+).html$
failed!
 
Ersetze mal deinen ersten Teil der Regex durch deine alten, also
Code:
^out-frame-id([0-9]*)-(.*).html$
statt
Code:
out-frame-id([0-9]+)-(.+).html$
etc.
 
Also so:

Code:
url.rewrite-once = (
"^out-frame-id([0-9]+)-(.+).html$" => "out.php?plug=$1&frame=1&base=0"
"^out-sticky-frame-id([0-9]+)-(.+).html$" => "out.php?id=$1&frame=1&base=0&sticky=$1"
"^out-sticky-id([0-9]+)-(.+).html$" => "out.php?id=$1&base=0&sticky=$1"
"^out-static-id([0-9]+)-(.+).html$" => "out.php?id=$1&base=0"
"^out-id([0-9]+)-(.+).html$" => out.php?plug=$1&base=0"
"^out-site([0-9]+)-(.+).html$" => "out.php?site=$1&base=0"
"^hosted-id([0-9]+)-(.+).html$" => "hosted/media/$2,$1.php"
"^page-(.+).html$" => "custom/$1.php"
"^comments-id([0-9]+)-(.+).html$" => "comments/$2,$1.php"
"^search-page([0-9]+)-(.+).html$" => "search.php?term=$2&page=$1"
"^out-sponsor-id([0-9]+).html$" => "sponsors.php?id=$1"
"^(.+)-(.+)-page([0-9]+).html$" => "$2/$1/$3.php"
"^profiles-page([0-9]+).html$" => "profilepages.php?page=$1"
"^(.+)-page([0-9]+).html$" => "$1/news/$2.php"
"^register.html$" => "register.php"
"^login.html$" => "login.php"
"^logout.html$" => "logout.php"
"^panel.html$" => "userpanel.php"
"^edit.html$" => "edit.php"
)
}

hatte ich es auch bereits ausprobiert.

Müsste es denn so funktionieren?
 
Nein.

Du musst ein Komma hinter jede Zeile setzen. Ich frage mich nur warum du die * durch + ersetzt.
 
Okay.. habs nun so probiert:

Code:
url.rewrite-once = (
"out-frame-id([0-9]*)-(.*).html$" => "out.php?plug=$1&frame=1&base=0",
"out-sticky-frame-id([0-9]*)-(.*).html$" => "out.php?id=$1&frame=1&base=0&sticky=$1",
"out-sticky-id([0-9]*)-(.*).html$" => "out.php?id=$1&base=0&sticky=$1",
"out-static-id([0-9]*)-(.*).html$" => "out.php?id=$1&base=0",
"out-id([0-9]*)-(.*).html$" => out.php?plug=$1&base=0",
"out-site([0-9]*)-(.*).html$" => "out.php?site=$1&base=0",
"hosted-id([0-9]*)-(.*).html$" => "hosted/media/$2,$1.php",
"page-(.*).html$" => "custom/$1.php",
"comments-id([0-9]*)-(.*).html$" => "comments/$2,$1.php",
"search-page([0-9]*)-(.*).html$" => "search.php?term=$2&page=$1",
"out-sponsor-id([0-9]*).html$" => "sponsors.php?id=$1",
"(.*)-(.*)-page([0-9]*).html$" => "$2/$1/$3.php",
"profiles-page([0-9]*).html$" => "profilepages.php?page=$1",
"(.*)-page([0-9]*).html$" => "$1/news/$2.php",
"register.html$" => "register.php",
"login.html$" => "login.php",
"logout.html$" => "logout.php",
"panel.html$" => "userpanel.php",
"edit.html$" => "edit.php"
)
}

funktioniert jedoch noch immer nicht. :(

Ist noch immer was falsch?
 
Sooo, ich hab jetzt mit

Code:
url.rewrite-once = (
"^out-frame-id([0-9]*)-(.*).html$" => "out.php?plug=$1&frame=1&base=0",
"^out-sticky-frame-id([0-9]*)-(.*).html$" => "out.php?id=$1&frame=1&base=0&sticky=$1",
"^out-sticky-id([0-9]*)-(.*).html$" => "out.php?id=$1&base=0&sticky=$1",
"^out-static-id([0-9]*)-(.*).html$" => "out.php?id=$1&base=0",
"^out-id([0-9]*)-(.*).html$" => out.php?plug=$1&base=0",
"^out-site([0-9]*)-(.*).html$" => "out.php?site=$1&base=0",
"^hosted-id([0-9]*)-(.*).html$" => "hosted/media/$2,$1.php",
"^page-(.*).html$" => "custom/$1.php",
"^comments-id([0-9]*)-(.*).html$" => "comments/$2,$1.php",
"^search-page([0-9]*)-(.*).html$" => "search.php?term=$2&page=$1",
"^out-sponsor-id([0-9]*).html$" => "sponsors.php?id=$1",
"^(.*)-(.*)-page([0-9]*).html$" => "$2/$1/$3.php",
"^profiles-page([0-9]*).html$" => "profilepages.php?page=$1",
"^(.*)-page([0-9]*).html$" => "$1/news/$2.php",
"^register.html$" => "register.php",
"^login.html$" => "login.php",
"^logout.html$" => "logout.php",
"^panel.html$" => "userpanel.php",
"^edit.html$" => "edit.php"
)
}

probiert. Bekomme nun folgende Meldung:


Code:
Starting web server: lighttpd2010-04-04 18:15:15: (configfile.c.796) source: /etc/lighttpd/lighttpd.conf line: 285 pos: 38 invalid character in variable name
2010-04-04 18:15:15: (configfile.c.852) configfile parser failed at: out.php
 
Code:
"out-id([0-9]+)-(.+).html$" => out.php?plug=$1&base=0",
Schau dir die Zeile nochmal genau an.

Und nächstes mal vielleicht noch die Zeilennummerierung nennen. Wir haben keine Lust zu raten…
 
Hmm, irgendwie scheinen die Einträge noch immer nicht zu funktionieren. Jedenfalls bekomme ich auf meiner Seite immer noch 404-Errors, komisch..

Kann man das irgendwie noch anders überprüfen ob die Einträge korrekt vom Server übernommen wurden?
 
Back
Top