20. Mai 200818 j 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
20. Mai 200818 j 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 200818 j von JesterDay
20. Mai 200818 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.