Zum Inhalt springen

Suchfunktion per GET


Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von JesterDay
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...