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:

Code: Alles auswählen

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

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.