mod_rewrite -> Verständnisfrage / Fehlerdiagnostik
Dieter
- programmiertechnik
Hallo,
für ein Projekt möchte/soll ich mod_rewrite für "schönere URLs" einsetzen.
So gibt es z.B. folgende Verweise:
search.php?scat=Kategorie1
search.php?scat=Kategorie2
...
searchprofile.php?scat=ProfilX
Mittels mod_rewrite habe ich das jetzt so hinbekommen, das aus den obigen Links das wird:
Angebote-Kategorie1
Angebote-Kategorie2
...
Anbieter-ProfilX
(ich gebe es zu, weil ich micht nicht mit den ganzen Verweisen zu css, js usw. rumschlagen wollte, simuliere ich nicht Ordner...).
Das obige habe ich mit folgender htaccess umgesetzt:
RewriteEngine On
RewriteRule ^Angebote-([^/]*)$ /search.php?scat=$1 [L][S]
RewriteRule ^Anbieter-([^/]*)$ /searchprofile.php?scat=$1 [L][S]
Jetzt kommt der Witz an der Sache:
Die Rewrites funktionieren wie gewünscht, ABER: ich komme nicht mehr auf die index.php.
Das heisst das es egal ist ob ich die Domain (in meinem Testfall http://localhost/ordner) oder die index.php direkt aufrufe - es erscheint ein 404.
Die Logfiles sagen hierzu das ich die Datei "-" aufrufen wollte...
Ich bitte daher um ein wenig Mithilfe, denn auch die schönste mod_rewrite taugt nix, wenn man einen 404 bekommt...
Gruss
Dieter
Aloha ;)
Habe noch keine Blanko-Lösjng für dich, aber ich glaube hier...
RewriteEngine On
RewriteRule ^Angebote-([^/])$ /search.php?scat=$1 [L][S]
RewriteRule ^Anbieter-([^/])$ /searchprofile.php?scat=$1 [L][S]
ist ein Syntaxfehler drin. Laut [Apache-Dokumentation](http://httpd.apache.org/docs/current/rewrite/flags.html) müssen Flags kommasepariert sein. Es ist also eher [L,S] als [L][S]...
Außerdem frage ich mich, was [S] bedeuten soll... Meiner Recherche nach (siehe verlinkte Seite) müsste S mit Zahlparameter stehen und ist zu L aber imho dann auch redundant... also vielleicht nur [L] verwenden...
Keine Ahnung, ob das dein Problem löst, aber versuchen schadet nicht... Dass ein Apache bei Syntaxfehlern im htaccess eher nen 500er sendet als einen 404er ist mir prinzipiell natürlich auch klar ;)
Grüße,
RIDER
--
Camping\_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
Aloha ;)
Habe noch keine Blanko-Lösjng für dich, aber ich glaube hier...
RewriteEngine On
RewriteRule ^Angebote-([^/])$ /search.php?scat=$1 [L][S]
RewriteRule ^Anbieter-([^/])$ /searchprofile.php?scat=$1 [L][S]
>
> ist ein Syntaxfehler drin.
> ...
> Grüße,
>
> RIDER
Hallo Rider,
das hat sich wohl beim rumexperimentieren / hier reinkopieren einfach und heimlich mit reingeschlichen...
Aber in der aktuellen htaccess ist es nicht enthalten, von daher kann ich das als Fehlerquelle ausschliessen; zumal und das ist ja das bemerkenswerte, die rewrite-Rules ja funktionieren...
Gruss
Dieter
Aloha ;)
das hat sich wohl beim rumexperimentieren / hier reinkopieren einfach und heimlich mit reingeschlichen...
Aber in der aktuellen htaccess ist es nicht enthalten, von daher kann ich das als Fehlerquelle ausschliessen; zumal und das ist ja das bemerkenswerte, die rewrite-Rules ja funktionieren...
Dann check doch bitte nochmal ab, ob hier tatsächlich exakt die aktuelle Version gepostet wurde und poste den Code per copy/paste eventuell nochmal neu. Abschreibefehler machen mich immer stutzig, ob wir wirklich den problematischen und aktuellen Quellcode vorliegen haben.
Zumindest sehe ich ansonsten auf Anhieb in deinen Anweisungen keinen Fehler...
Grüße,
RIDER