Seite 1 von 1
Wer kann mir helfen
Verfasst: 03.06.2009 14:37
von mad_max
Hallo...
ich habe folgendes in meiner htaccess Datei stehen:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L]
RewriteRule ^fotos/ - [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/$ index.php?id=$1&id2=$2&id3=$3&id4=4 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/$ index.php?id=$1&id2=$2&id3=$3 [L]
RewriteRule ^([^/]*)/([^/]*)/$ index.php?id=$1&id2=$2 [L]
RewriteRule ^([^/]*)/$ index.php?id=$1 [L]
da ist sicher einer Fehler drin, denn wenn ich an einer steller abfrage
if($_GET["id"] == "xxx")
{
if(isset($_GET["id2"]))
{
$_SESSION["xxx"] = $_GET["id2"];
}
}
speichert er die $_SESSION["xxx"] so wie gewollt aber wenn ich auf eine andere Seite gehe speichert er eine x-belibige css datei in der Session.
Ich wäre wirklich dankbar für jede Hilfe
Verfasst: 03.06.2009 15:04
von Gumbo
Setze mal folgende Regel an erster Stelle:
Verfasst: 03.06.2009 15:16
von mad_max
Hallo und danke für die rasche Antwort,
leider gibt es dann immernoch den gleichen Fehler!
Verfasst: 03.06.2009 15:27
von mad_max
Ich habe gerade festgestellt das wenn ich die URL mit einen / abschließe funktioniert es.
Wie kann ich das aber in der htaccess so ändern das es mit und ohne / funktioniert?!
Verfasst: 03.06.2009 15:49
von Gumbo
Setz dazu die abschließenden Schrägstriche als optional („/?$“). Du solltest dich aber besser für eine Schreibweise entscheiden (mit oder ohne abschließenden Schrägstrich) und davon abweichende URLs korrigieren.
Verfasst: 03.06.2009 15:54
von mad_max
Ok... Wie kann ich dann die url so umleiten dass sie immer eine abschließenden Schrägstrich hat?!
Verfasst: 04.06.2009 07:18
von Gumbo
Dazu musst du lediglich die erste Regel wie oben genannt durch das Flag „R=301“ ergänzen.
Verfasst: 04.06.2009 07:31
von mad_max
Das habe ich schon versucht, nur dann kann ich keine POST-Daten auslesen...
Kann das vielleicht auch mit der Servereinstellung von Xampp zu tun haben...?!
Verfasst: 04.06.2009 09:44
von Gumbo
Die Links/URLs, die du selbst setzt, sollten schon richtig sein. Also in dem Fall mit abschließendem Schrägstrich.
Verfasst: 05.06.2009 11:06
von mad_max
Jetzt habe ich aber noch ein Problem.
Wenn ich die URL`s mit einen abschließenden Schrägstrich setzte funktionieren meine AJAX-Anwendungen nicht mehr (Error 404), wenn ich aber den abschließenden Schrägstrich weglasse funktionieren sie wieder.
Ich bin langsam am verzweifeln.
Was mache ich falsch.
Hier noch mal der Code:
Code: Alles auswählen
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L]
RewriteRule ^fotos/ - [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ index.php?id=$1&id2=$2&id3=$3 [L]
RewriteRule ^([^/]+)/([^/]+)/$ index.php?id=$1&id2=$2 [L]
RewriteRule ^([^/]+)/$ index.php?id=$1 [L]
Verfasst: 05.06.2009 17:13
von Gumbo
Du musst wissen, dass relative URLs immer von der URL des aktuellen Dokuments aus aufgelöst werden, falls keine abweichende URL als Basis-URL angegeben wurde.
Das heißt in deinem Fall, dass wenn du den URL-Pfad deiner Ressourcen änderst, ändert sich damit auch der Basis-URL-Pfad und damit auch alle davon aus aufgelösten relativen URL-Pfade. Ein „bar“ oder „./bar“ wird wenn es von „/foo/“ statt „/foo“ aufgelöst wird zu „/foo/bar“ statt „/bar“. Das musst du berücksichtigen und entweder die URL-Pfad-Angaben anpassen (etwa absolute URL-Pfade, also „/bar“ statt „bar“ oder „./bar“) oder die Basis-URL ändern (siehe BASE-HTML-Element), wobei letzteres aber Nebenwirkungen hat.