zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Fragen zu mod_rewrite, 500 error, Variablenverlust

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 18.07.2009, 05:44
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.07.2009
Beiträge: 3
Apache09 befindet sich auf einem aufstrebenden Ast
Standard Fragen zu mod_rewrite, 500 error, Variablenverlust

Hallo!
Mittels rewrite will ich folgendes erreichen:
Anfragen zu Dateien eines bestimmten Typs (z.B. png, gif, jpg,css,...) , die es im angefragten Verzeichnis nicht gibt, sollen auf das Verzeichnis /bilder umgeleitet werden, also dann /bilder/(Dateiname). Sollte die Datei dort auch nicht vorhanden sein, soll ganz normal ein 404-Fehler kommen.
Alle anderen Aufrufe sollen auf /main.php geleitet werden.
Optional will ich später noch die RewriteRule zum Aufruf von /main.php so ändern, dass grundsätzlich bestimmte Dateitypen nicht davon erfaßt werden.

Im Moment steht folgendes in meiner .htaccess-Datei:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ([^\/]*(\.png|\.gif|\.jpg|\.css))$ /bilder/$1 [L,NS,NC]
# kann man hier auch noch eine 303-Meldung einbauen?

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /main.php
#RewriteRule ^.*(^\.png|^\.gif|^\.jpg|^\.css)$ /main.php [NC]

1. Folgende Fehler gibt es leider:
Ist eine Datei mit png,gif,jpg oder css-Endung auch nicht im Verzeichnis /bilder vorhanden, liefert der Server einen 500-er Fehler. Sollte das nicht ein 404-er Fehler sein?
2. Versuche ich die letzte Zeile
RewriteRule ^.*$ /main.php
durch die jetzt auskommentierte Zeile zu ersetzen
#RewriteRule ^.*(^\.png|^\.gif|^\.jpg|^\.css)$ /main.php
scheint mir die RewriteRule zwar so zu funktionieren, wie sie soll, ABER bei html-submit sind die Forumlardaten weg/leer/... wenn ich in main.php darauf zugreifen will.

Kann das wirklich so schwer sein?? ):

Grüße
Dieter

Geändert von Apache09 (18.07.2009 um 05:54 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 18.07.2009, 07:55
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.845
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Irgendwie ist alles schwer, wenn man nicht weiß wie's geht.

Ich bin kein mod_rewrite-Experte, aber ich versuch's einfach mal.

Zu 1:
Warum Du einen 500er bekommst weiß ich leider nicht, aber den Statuscode kannst Du mitsenden, indem Du den Flags noch ein R=303 mitgibst, also sollten die Flags dann so aussehen: [R=303,L,NS,NC]

Zu 2:
Für mich sieht die Regel so aus, als wenn sie nicht funktionieren dürfte, da das ^ für ein Zeilenanfang steht und nur bei [^] negierend wirkt, afaik, aber nun gut.

Für meine Begriffe müsste die Zeile so aussehen:
RewriteRule ^.*[^(?:\.png|\.gif|\.jpg|\.css)]$ /main.php [QSA]

Das Flag QSA steht für QueryStringAppend und hängt die GET-Parameter an, die Post-Daten sollten eigentlich in der PHP-Datei zur Verfügung stehen.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 18.07.2009, 12:07
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.735
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Probier mal Folgendes:
Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/bilder%{REQUEST_URI} -f
RewriteRule .*\.(png|gif|jpg|css)$ /bilder%{REQUEST_URI} [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !.*\.(png|gif|jpg|css)$ /main.php [L]
__________________
Markus Wulftange
Mit Zitat antworten
  #4 (permalink)  
Alt 19.07.2009, 02:12
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.07.2009
Beiträge: 3
Apache09 befindet sich auf einem aufstrebenden Ast
Standard

Hallo!
Erstmal vielen Dank für die Hilfe.

Leider hat es immer noch nicht funktioniert. Die erste RewriteRule hat nur noch 404er Fehler geliefert, auch wenn die Datei im Verzeichnis /bilder lag. Die zweite RewriteRule hat genausogut bzw schlecht wie mein Vorschlag funktioniert: Einer hat auch die eigentlich ausgenommenen Endungen auf /main.php geleitet - der andere hat die ausgenommenen Endungen zwar nicht weitergeleitet, aber beim Absenden eines Formulars einer html-Datei kamen leider die Post-Variablen nicht mehr an.

Aber durch eure Vorschläge habe ich auch noch zwei Ideen bekommen, wie ich es versuchen könnte.
Beim der ersten RewriteRule könnte ich noch einbauen, dass der Pfad der angefragten Datei nicht "/bilder" sein darf. Mittels RewriteCond hat das ja leider nicht geklappt.

Aber bei der zweiten RewriteRule für /main.php werde ich per RewriteCond versuchen, dass keine Dateien auf /main.php geleitet werden, wenn sie bestimmte Endungen haben, wie .jpg, .png, ...

Ich schätze am Montag oder Dienstag werde ich dann schreiben, ob es geht.

Grüße
Dieter

P.S. Vielleicht liegt das ja auch an den Einstellungen des Anbieters. Ich bin bei 1und1. Eigentlich könnte ich dort mal den Support fragen. Vor ein paar Jahren konnte der Support mir auch mal helfen. Allerdings habe ich jetzt ein anderes Paket.
Mit Zitat antworten
  #5 (permalink)  
Alt 21.07.2009, 23:54
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.07.2009
Beiträge: 3
Apache09 befindet sich auf einem aufstrebenden Ast
Standard

Hallo!
Keine der patterns und RewriteConditions, die ich bisher ausprobiert habe, hat bisher zu einem funktionierendem Ergebnis geführt. ):
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
FAQ -- Häufig gestellte Fragen und häufig gegebene Antworten mazzo CSS 10 05.04.2012 18:32
Fragen über Fragen - Anfänger Anfaenger110 (X)HTML 15 04.01.2009 17:05
Fragen über Fragen jules CSS 5 09.10.2008 16:21
utf8 Fragen und Probleme lewian (X)HTML 11 07.09.2005 02:47
Ein paar Fragen eines CSS-Newbie (Textausrichten, etc) das.prov CSS 21 06.02.2005 21:16


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:21 Uhr.