Problem mit Script zur URI Zerlegung (Quellcode vorhanden)

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

Problem mit Script zur URI Zerlegung (Quellcode vorhanden)

Beitragvon christiana83 » 28.07.2006 13:19

Schalömchen,

ich hab jetzt sämtliche Foren durchforstet, um mein Problem zu lösen, aber ich komme nicht ganz zur Vollendung, da ich meines Erachtens einen Denkfehler hab oder den Wald vor lauter Bäumen nicht mehr sehe.
Ich probiere jetzt schon seit einer Woche und bin über jede Hilfe dankbar.

Also folgendes Problem. Ich habe 1 bis > 12 Parameter (6 Parameterpaare) zu übergeben. Mod_rewrite kann aber nur von $1 bis $9 übergeben. Aus diesem Grund habe ich meine htaccess umgeschrieben und ein passendes PHP Script formuliert, welches die URI zerlegt.

Das ganze hat nun auch super funktioniert...alle Parameter, auch bis $14 werden übergeben. Nur funktioniert jetzt die Übergabe eines einzigen Parameterpaares nicht mehr...also §1=$2 bringt mich zu einer Seite ohne Inhalt. Werden wieder mehr Parameter übergeben, so funktioniert das ganze wiederum...

zum Nachvollziehen:

PHP:

Code: Alles auswählen
$parts = explode('/', $_SERVER['REQUEST_URI']);
$num = count($parts);

for ($i=2; $i < $num ; $i++) {


   if($i < $num-1) {
      $key = $parts[$i];    // 'fuseaction'
      $value = $parts[$i+1]; // 'start'
      
      if(!empty($key) and !empty($value)) {
         $_GET[$key] = $value;
      }
   }
   
   $i++;
   
   
}




HTACCESS:


Code: Alles auswählen
Options +SymLinksIfOwnerMatch +FollowSymLinks

RewriteEngine On


RewriteRule ^(.+)/?.html$ index.php?request_uri=%{REQUEST_URI} [L]




Vielleicht sieht jemand erfahrenes den Fehler ja auf den ersten Blick...ich knobel jedenfalls schon die ganze Zeit und werde einfach nicht schlauer....
:?: :?:
christiana83
.
.
 
Beiträge: 4
Registriert: 28.07.2006 13:03

Beitragvon christiana83 » 28.07.2006 14:22

PROBLEM GELÖST!!!!

Damit ich mich auch nicht gleich beim ersten Eintrag unbeliebt mache will ich auch die Lösung hin posten:

Code: Alles auswählen
$parts = explode('/', $_SERVER['REQUEST_URI']);
$num = count($parts);

for ($i=2; $i < $num ; $i++) {


   if($i < $num-1) {
      $key = $parts[$i];    // 'fuseaction'
      //$value = $parts[$i+1]; // 'start'
      
      $value = str_replace('.html','', $parts[$i+1]);
      
      if(!empty($key) and !empty($value)) {
         $_GET[$key] = $value;
      }
   }
   
   $i++;
   
   
}



...da ich an jeden Link ein ".html" angehangen habe, hat er das mit zurück gegeben und das war natürlich ein Fehler...also muss er das ".html" ignorieren...und str_replace ist die Lösung![/code]
christiana83
.
.
 
Beiträge: 4
Registriert: 28.07.2006 13:03


Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron