Thomasmacfly Geschrieben 20. Mai 2008 Geschrieben 20. Mai 2008 Hallo zusammen, ich habe folgendes Problem: Ich rufe Seiten über index.php?url_alias=xy auf, angezeigt werden soll xy.html. Das funktioniert mit folgendem Code gut: Code: RewriteEngine On RewriteRule index.html$ /index.php [PT] RewriteRule ^([0-9]+)-meine-freunde.html$ /index.php?url_alias=meine-freunde&buddy2_fK=$1 RewriteRule ^([0-9]+)-freunde-finden.html$ /index.php?url_alias=freunde-finden&buddy2_fK=$1 RewriteRule ^([0-9]+)-einladung.html$ /index.php?url_alias=einladung&budRelID=$1 RewriteRule ^([0-9]+)-write.html$ /index.php?url_alias=write&to_fK=$1 RewriteRule ^([0-9]+)-([0-9]+)-thema.html$ /index.php?url_alias=thema&pag_page=$1&threadID=$2 RewriteRule ^([0-9]+)-profil.html$ /index.php?url_alias=profil&profileID=$1 RewriteRule ^([0-9]+)-forum.html$ /index.php?url_alias=$1-forum&forumID=$1 RewriteRule ^reply-([0-9]+)-pms.html$ /index.php?url_alias=pms&reply=1&msgID=$1 RewriteRule ^([0-9]+)-pms.html$ /index.php?url_alias=pms&msgID=$1 RewriteRule ^([0-9]+)-grusskarten.html$ /index.php?url_alias=grusskarten&greetcardID=$1 RewriteRule ^([-0-9a-zA-Z]+)-registrierung.html$ /index.php?url_alias=registrierung&activate_code=$1 RewriteRule ^([-0-9a-z]+).html$ /index.php?url_alias=$1 ErrorDocument 404 /errordoc/error404.html Nun will ich eine Suchfunktion über GET implementieren (PHP), also z.B. suche.html?searchfield=xy&search-btn=Finden für index.php?url_alias=suche&searchfield=xy&search-btn=Finden Probiert habe ich: Code: RewriteRule ^suche.html?searchfield=([^&]*)&search-btn=Finden$ /index.php?url_alias=suche&searchfield=$1&search-btn=Finden RewriteRule ^suche.html?searchfield=([^&]*)$ /index.php?url_alias=suche&searchfield=$1 (Zeile 3, falls per Return und nicht per Button bestätigt wird.) Das funktioniert leider nicht, bei $_GET kommt nur der url_alias an. Weiss jemand Rat? Vielen Dank schon mal, Thomas Zitieren
geloescht_JesterDay Geschrieben 20. Mai 2008 Geschrieben 20. Mai 2008 (bearbeitet) Code: RewriteRule ^suche.html?searchfield=([^&]*)&search-btn=Finden$ /index.php?url_alias=suche&searchfield=$1&search-btn=Finden RewriteRule ^suche.html?searchfield=([^&]*)$ /index.php?url_alias=suche&searchfield=$1 Also eigentlich sollte das ja schon gehen, denn du tust ja nichts besonderes und index.php wird ja mit dem alias suche wohl aufgerufen. Du kannst dir auch mal $_SERVER["QUERY_STRING"] anzeigen lassen. Aber das sollte das sein was in $_GET steht, nur als String eben. Ach, verkürzen könntest du deine RewriteRule mit QSA (Query String Append), sollte gehen denk ich: RewriteRule ^suche.html?searchfield=([^&]*)$ /index.php?url_alias=suche [QSA] Damit hängt er den bisherigen QueryString an die URL an, also alle deine Parameter werden einfach übernommen. Damit könntest du auch dir Rule selbst verkürzen, da du ja kein $1 etc mehr brauchst. Nachtrag ich denke es liegt an deiner RegEx: ^suche.html?searchfield=([^&]*)$ nicht &, beliebig oft... aber sonst nix. Du schließt nur das & aus aber sonst ist nichts gültig. ^suche.html?searchfield=(.*)&?$ sollte denke ich gehen (alles bis zum &, was optional ist), oder einfach QSA Bearbeitet 20. Mai 2008 von JesterDay Zitieren
Thomasmacfly Geschrieben 20. Mai 2008 Autor Geschrieben 20. Mai 2008 Hallo Jesterday, ich habe es jetzt anders gelöst: RewriteEngine On RewriteRule index.html$ /index.php [PT] RewriteRule ^([0-9]+)-meine-freunde.html$ /index.php?url_alias=meine-freunde&buddy2_fK=$1 RewriteRule ^([0-9]+)-freunde-finden.html$ /index.php?url_alias=freunde-finden&buddy2_fK=$1 RewriteRule ^([0-9]+)-einladung.html$ /index.php?url_alias=einladung&budRelID=$1 RewriteRule ^([0-9]+)-write.html$ /index.php?url_alias=write&to_fK=$1 RewriteRule ^([0-9]+)-([0-9]+)-thema.html$ /index.php?url_alias=thema&pag_page=$1&threadID=$2 RewriteRule ^([0-9]+)-profil.html$ /index.php?url_alias=profil&profileID=$1 RewriteRule ^([0-9]+)-forum.html$ /index.php?url_alias=$1-forum&forumID=$1 RewriteRule ^reply-([0-9]+)-pms.html$ /index.php?url_alias=pms&reply=1&msgID=$1 RewriteRule ^([0-9]+)-pms.html$ /index.php?url_alias=pms&msgID=$1 RewriteRule ^([0-9]+)-gesendete-nachrichten.html$ /index.php?url_alias=gesendete-nachrichten&msgID=$1 RewriteRule ^([0-9]+)-gesendete-grusskarten.html$ /index.php?url_alias=gesendete-grusskarten&greetcardID=$1 RewriteRule ^([0-9]+)-grusskarten.html$ /index.php?url_alias=grusskarten&greetcardID=$1 RewriteRule ^([-0-9a-zA-Z]+)-registrierung.html$ /index.php?url_alias=registrierung&activate_code=$1 RewriteCond %{QUERY_STRING} searchfield=([^&]*)&search-btn=Finden$ RewriteRule ^suche\.html$ /index.php?url_alias=suche&searchfield=%1&search-btn=Finden RewriteCond %{QUERY_STRING} searchfield=([^&]*)$ RewriteRule ^suche\.html$ /index.php?url_alias=suche&searchfield=%1 RewriteRule ^([-0-9a-z]+).html$ /index.php?url_alias=$1 ErrorDocument 404 /errordoc/error404.html Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.