Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

RewriteRule klappt bei mehreren Parametern nicht.

Hier können Sie Ihre Fragen zum Thema Suchmaschinenoptimierung (SEO) / Positionierung stellen
Neues Thema Antworten
highflyer
PostRank 5
PostRank 5
Beiträge: 292
Registriert: 08.08.2005, 18:40

Beitrag von highflyer » 08.09.2005, 08:12

Hi Leute,
ich habe eine Suchseite, der ca. 50-100 Einträge ausspucken kann. Angezeigt werden immer 10. Zur nächsten 10 bin ich bisher gewechselt, indem ich die suchvariablen angehängt hab. Also z.B.
suche.php?var1=bla&var2=blub&var3=boah&order=machmal&by=irgendeinezahl

Einige Variablen können übrigens auch mal leer sein. Je nach dem ob der User Optionen ausgewählt hat oder nicht.

Ich habe nun mein
rewriterule suche-(.*)-(.*)-(.*)-(.*)-(.*) \.htm$ suche.php?var1=1$&var2=2$&var3=3$&order=4$&by=5$

Den Link zu den nächsten 10 Ergebnissen habe ich dementsprechend umgebaut.
suche-'.($var1).'-'.($var2).'-'.($var3).'-'.($order).'-'.($by).'.htm
Es klappt aber nicht so wie ich das möchte :(
Das Gute ist dass er keine Fehlermeldung zeigt, aber die Suchergebnisse sind alle weg. Also anstatt er z.B. die nächsten 20 anzeigt, kommt der Standardtext "keine Suchergebnisse". :evil:

Wer hat Erfahrungen mit Parameterübergabe insbesondere mit Suchseiten über mehrer Seiten verteilt und das ganze mit htaccess und modrewrite?

Vielen Dank

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


casino
PostRank 1
PostRank 1
Beiträge: 16
Registriert: 06.08.2005, 12:38
Wohnort: Amberg

Beitrag von casino » 08.09.2005, 10:08

Du hast da was verdreht..

Wenn du die Variablen mit $1, $2 usw. - nicht mit 1$ übergibst, dann wirds bestimmt laufen ;)

Ciao Robby

highflyer
PostRank 5
PostRank 5
Beiträge: 292
Registriert: 08.08.2005, 18:40

Beitrag von highflyer » 08.09.2005, 11:18

Sorry, das war ein Postingfehler von mir. Die Variablen sind schon richtig eingetragen. Hier der wirklich Rewriterule
^suche(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)\.htm$ /search.php?min=$1&geschlecht=$2&sgeschlecht=$3&minage=$4&maxage=$5&spitzname=$6&plz=$7&gewerblich=$8&privat=$9&land=$10&order=$11&by=$12

casino
PostRank 1
PostRank 1
Beiträge: 16
Registriert: 06.08.2005, 12:38
Wohnort: Amberg

Beitrag von casino » 08.09.2005, 11:47

Solang 9 Variablen übergeben werden gibts kein Problem, aber sobald du eine weitere Var wie z.B. land=$10 übergeben willst, kommt die RewriteEngine durcheinander. Dann wird wieder die erste Variable übergeben und einfach noch ne 0 rangehängt.

Vielleicht solltest du mal überprüfen ob du wirklich alle Variablen brauchst. Oder, noch besser:
Übergib einfach alles was nach suche(.*) steht in einer einzigen Variable an dein Script und lass php die Arbeit mit dem zerpflücken der Vars machen.

in der .htaccess:

Code: Alles auswählen

RewriteRule ^suche([A-Za-z0-9-]*)\.htm$ /search\.php?var=$1
und in der search.php:

Code: Alles auswählen

$vars = explode('-', $_GET["var"]);
So hast du alle Variablen sauber in nem Array drin und kannst damit weiterarbeiten.

Ciao Robby

highflyer
PostRank 5
PostRank 5
Beiträge: 292
Registriert: 08.08.2005, 18:40

Beitrag von highflyer » 08.09.2005, 13:42

Erstmal danke, das wusste ich nicht dass es nur 9 variablen verarbeiten kann. Es klappt aber immer noch nicht, ich bleibe bei den ersten 10 Treffern kleben. Folgendes hab ich gemacht:

In die htaccess:
RewriteRule ^suche([A-Za-z0-9-]*)\.html$ /search\.php?var=$1

Suchlink: <a href="suche<? echo $naechste.'-'.$geschlecht.'-'.$sgeschlecht.'-'.$minage.'-'.$maxage.'-'.$spitzname.'-'.$plz.'-'.$gewerblich.'-'.$privat.'-'.$land.'-'.$order.'-'.$by ?>.html">Weiter</a>

Vor dem Suchlink:
$vars = explode('-', $_GET["var"]);
$var1=$vars[0];
$var2=$vars[1];
$var3=$vars[2];
$var4=$vars[3];
$var5=$vars[4];
$var6=$vars[5];
$var7=$vars[6];
$var8=$vars[7];
$var9=$vars[8];
$var10=$vars[9];
$var11=$vars[10];
$var12=$vars[11];
$var='min='.$var1.'&geschlecht='.$var2.'&sgeschlecht='.$var3.'&minage='.$var4.'&maxage='.$var5.'&spitzname='.$var6.'&plz='.$var7.'&gewerblich='.$var8.'&privat='.$var9.'&land='.$var10.'&order='.$var11.'&by='.$var12;
Jetzt bleibt er bei den ersten 10 Treffern kleben, keine Fehlermeldungen. Das ist schon mal ein gutes Zeichen. Irgendwo liegt da bei mir der Denkfehler. Wäre dankbar wenn mir jemand helfen kann.

Maschenka
PostRank 3
PostRank 3
Beiträge: 98
Registriert: 19.11.2004, 16:38

Beitrag von Maschenka » 08.09.2005, 15:30

Hast du die Möglichkeit, auf die Serverlogs zuzugreifen? Du könntest dann gucken, wie genau das mit dem Rewrite abläuft.
https://httpsd.apache.org/docs/mod/mod_ ... RewriteLog

casino
PostRank 1
PostRank 1
Beiträge: 16
Registriert: 06.08.2005, 12:38
Wohnort: Amberg

Beitrag von casino » 08.09.2005, 15:59

Puh, du machst dir dein Script aber auch unnötig umständlich ;)

An der hta und am php-schnipsel kanns definitiv nicht liegen.
Kommen also nur noch die Variablen selbst in Frage. Überprüf mal, ob in deinen übergebenen Var (am besten bei der, wo abgebrochen wird), ob auch wirklich nur Werte von A-Z a-z 0-9 und - vorkommen. Sobald n Slash o.ä. vorkommt wird der Rewrite abgebrochen.

Mach mal aus deiner Rule n Redirect ([R] ans Zeilenende), dann siehst du was alles ans Script übergeben wird.

Ciao Robby

highflyer
PostRank 5
PostRank 5
Beiträge: 292
Registriert: 08.08.2005, 18:40

Beitrag von highflyer » 08.09.2005, 16:44

Hallo,
vielen Dank für euch. Hab es hingekriegt. Das Problem lag daran, dass danach die Variablen verarbeitet wurden und sie wurden durch das Array komplett überschrieben. Also hab ich beim Auslesen des Arrays nun immer eine if abfrage und es läuft, also
$vars = explode('-', $_GET["var"]);
if ($vars[0]!="") {$min=$vars[0];}
if ($vars[1]!="") {$geschlecht=$vars[1];}
if ($vars[2]!="") {$sgeschlecht=$vars[2];}
if ($vars[3]!="") {$minage=$vars[3];}
if ($vars[4]!="") {$maxage=$vars[4];}
if ($vars[5]!="") {$spitzname=$vars[5];}
if ($vars[6]!="") {$plz=$vars[6];}
if ($vars[7]!="") {$gewerblich=$vars[7];}
if ($vars[8]!="") {$privat=$vars[8];}
if ($vars[9]!="") {$land=$vars[9];}
if ($vars[10]!="") {$order=$vars[10];}
if ($vars[11]!="") {$by=$vars[11];}

Vielen Dank jetzt steht einem validen html nichts im wege juhuu :D

casino
PostRank 1
PostRank 1
Beiträge: 16
Registriert: 06.08.2005, 12:38
Wohnort: Amberg

Beitrag von casino » 08.09.2005, 16:54

Schön,
aber das fertige Werk wollen wir später schon sehn 8)

Ciao Robby

highflyer
PostRank 5
PostRank 5
Beiträge: 292
Registriert: 08.08.2005, 18:40

Beitrag von highflyer » 08.09.2005, 17:48

Ähm......... das Werk steht eigentlich schon und ich optimiere es erstmal.
Wird zwar noch erweitert aber es steht im Netz. Möchte es aber nicht unbedingt hier posten. :oops: :wink: :lol:
Kriegst per Privatmail die Url ok?
Und nochmals danke

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag