Mod-Rewrite: lokal funktionierts, online nicht
Manu
- webserver
Hallo zusammen,
ich habe da ein merkwürdiges Problem mit meinen Rewrite-Regeln: Lokal unter xampp funktioniert alles wie geplant, aber nach dem Hochladen auf mehrere Testdomains bei meinem Provider all-inkl.com klappt fast nichts. Fast - denn ich bekomme keine Fehlermeldung, sondern einfach keine Parameter ($_GET ist leer) übermittelt, bleibe aber 'auf' meiner Datei.
Geplant ist, einen URL wie http://meinedomain.de/test/Kategorie1/Kategorie2
auf
http://meinedomain.de/test.php?cat[]=Kategorie1&cat[]=Kategorie2 umzuschreiben.
Wie gesagt, irgendwie 'bleibe' ich aber auf http://meinedomain.de/test.php. Ich bin wirklich überfragt...:(
Andere Projekte laufen dort übrigens ohne Probleme mit Rewrite-Regeln, allerdings habe ich eine Struktur mit Slashes dort noch nicht verwirklicht.
Mein Code:
Options -Indexes
AddType application/x-httpd-php .htm .html
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^./]+)/([^./]+)/([^./]+)/([^./]+)/([^./]+)/$ $1.php?cat[]=$2&cat[]=$3&cat[]=$4&cat[]=$5 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^./]+)/([^./]+)/([^./]+)/([^./]+)/$ $1.php?cat[]=$2&cat[]=$3&cat[]=$4 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^./]+)/([^./]+)/([^./]+)/$ $1.php?cat[]=$2&cat[]=$3 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^./]+)/([^./]+)/$ $1.php?cat[]=$2 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^./]+)/$ $1.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]*).(htm|html)$ /$1.php [QSA,L]
Ich schmeiß ne Kiste Bier für denjenigen, der mir einen Tipp gibt, wie ich das zum Laufen bekomme...
Gruß,
Manu
Hat denn keiner eine Idee?
Gruß,
Manu
Hellihello
Hat denn keiner eine Idee?
Doch: dass Du da in meinen Augen eine Menge überflüssiges stehen hast. Es lag mir schon auf der Zunge, das im ersten Lesen zu schreiben, dachte aber, vielleicht kommmt ja doch einer, der es trotz der Menge kapiert. Dampf Dein Problem doch erstmal auf eine Zeile ein. Diese Haufen von scheinbar redundanten RegEx brauchst Du doch für die Fehlersuche nicht, oder?
Dank und Gruß,
Hallo frankx und danke für deine Antwort!
Also ich habe das Ganze jetzt zig Mal umgestellt, aber es will einfach nicht. Mein Provider all-inkl.com sagt halt lapidar, dass das nicht sein Problem sei. Dort läuft Apache 2.2.6, hier läuft 2.2.4.
Ziel ist, dass folgender URL
www.meinedomain.de/index/Betriebssysteme/WindowsXP/
umgeschrieben wird zu
www.meinedomain.de/index.php?cat[]=Betriebssysteme&cat[]=WindowsXP
(Gna, ich sehe gerade, habe im ersten Posting das abschließende / vergessen)
ich kürze hier mal alles so zusammen, dass nur noch eine Zeile übrig bleibt (so hab ichs auch online gemacht - wie gesagt, ohne Erfolg).
wie oben:
RewriteRule ^([^./]+)/([^./]+)/([^./]+)/$ $1.php?cat[]=$2&cat[]=$3 [QSA,L]
geändert zu
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ $1.php?cat[]=$2&cat[]=$3 [QSA,L]
auch probiert
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ $1.php?cat[]=$2&cat[]=$3 [QSA,L]
und das klappte auch nicht
RewriteRule ^(.+)/(.+)/(.+)/$ $1.php?cat[]=$2&cat[]=$3 [QSA,L]
Alles was ich jetzt hier umgeschrieben hatte führt immer nur zu
www.meinedomain.de/index.php
Ich bin ziemlich verzweifelt, da ich schon einige Monate an dem Projekt arbeite und langsam den Eindruck habe, es so nicht realisieren zu können :(
Manu
Hellihello
Hallo frankx und danke für deine Antwort!
Also ich habe das Ganze jetzt zig Mal umgestellt, aber es will einfach nicht. Mein Provider all-inkl.com sagt halt lapidar, dass das nicht sein Problem sei. Dort läuft Apache 2.2.6, hier läuft 2.2.4.
Ziel ist, dass folgender URL
www.meinedomain.de/index/Betriebssysteme/WindowsXP/
umgeschrieben wird zu
www.meinedomain.de/index.php?cat[]=Betriebssysteme&cat[]=WindowsXP(Gna, ich sehe gerade, habe im ersten Posting das abschließende / vergessen)
ich kürze hier mal alles so zusammen, dass nur noch eine Zeile übrig bleibt (so hab ichs auch online gemacht - wie gesagt, ohne Erfolg).
wie oben:
RewriteRule ^([^./]+)/([^./]+)/([^./]+)/$ $1.php?cat[]=$2&cat[]=$3 [QSA,L]geändert zu
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ $1.php?cat[]=$2&cat[]=$3 [QSA,L]auch probiert
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ $1.php?cat[]=$2&cat[]=$3 [QSA,L]und das klappte auch nicht
RewriteRule ^(.+)/(.+)/(.+)/$ $1.php?cat[]=$2&cat[]=$3 [QSA,L]
Warum fängst Du nicht mal so an
RewriteRule www.meinedomain.de/index.php /www.meinedomain.de/index.php?a=b [L]
Ich weiß nicht, ob die o.g. Syntax von mir o.k. ist, der Ansatz zur Fehlersuche aber vermutlich nicht ganz so falsch. Mein Tipp zudem: es liegt _nicht_ am Provider, es liegt an Deinen RegExpressions.
Dank und Gruß,
Hellihello
RewriteRule www.meinedomain.de/index.php /www.meinedomain.de/index.php?a=b [L]
Ich weiß nicht, ob die o.g. Syntax von mir o.k. ist, der Ansatz zur Fehlersuche aber vermutlich nicht ganz so falsch. Mein Tipp zudem: es liegt _nicht_ am Provider, es liegt an Deinen RegExpressions.
Und:
RewriteEngine on
RewriteRule (.*)index.php index1.php?var=$1
http://de.selfhtml.org/servercgi/server/rewrite.htm
triffts vielleicht besser. Und mach die RewriteEngine an.
Dank und Gruß,
Danke für Deine Antwort, aber zu Deinen Tipps: sorry, nicht besonders hilfreich.
Ist nicht das erste mal, dass ich mit Mod-Rewrite zu tun habe.
Zudem: es läuft auf Apache 2.2.4, beim Provider nicht (Apache 2.2.6).
Andere Regeln laufen, aber keine (bisher), wo ich eine verzeichnisähnliche Struktur (mit Slashes getrennt) benutzen will.
Ich brauche natürlich eine Regel, die meinen Anforderungen gerecht wird.
Da ich jetzt quasi eine ganze Menge Kram durch habe, liegt der Verdacht nahe, dass das Problem beim Provider liegt. Ist schließlich nicht das erste Mal...
Was da querschießt, ist die Frage.
Gruß,
Manu
Hellihello
Danke für Deine Antwort, aber zu Deinen Tipps: sorry, nicht besonders hilfreich.
Ist nicht das erste mal, dass ich mit Mod-Rewrite zu tun habe.
Zudem: es läuft auf Apache 2.2.4, beim Provider nicht (Apache 2.2.6).Andere Regeln laufen, aber keine (bisher), wo ich eine verzeichnisähnliche Struktur (mit Slashes getrennt) benutzen will.
Ich brauche natürlich eine Regel, die meinen Anforderungen gerecht wird.
Da ich jetzt quasi eine ganze Menge Kram durch habe, liegt der Verdacht nahe, dass das Problem beim Provider liegt. Ist schließlich nicht das erste Mal...
Was da querschießt, ist die Frage.
Nun ja, war ja nur so ein Tipp, weil Du Dich gewundert hast, dass niemand antwortet. Hättest Du Schritt eins hinbekommen, wäre Schritt zwei gefolgt.
Dank und Gruß,
Ja, find ich ja auch nett, aber leider nicht hilfreich...
Schritt 1? Schritt 2?
Gruß,
Manu
wow, ich habs herausgefunden - die Regeln waren ok, aber ein Options -MultiViews hat gefehlt.
Gruß,
Manu