Yeenah: Nach mod rewrite kein php_self mehr?

Hallo,
seit Kurzem unterstützt mein Server auch endlich Mod Rewrite und ich habe es auch sofort voll ausgenutzt, sprich alle Links umgeschrieben und Parameter entfernt. Alles schön und gut, aber leider ist folgendes Problem aufgetreten:

1. Vor Mod Rewrite habe ich ein Pagination Script für die Seitenzahlen benutzt:

  
$menu = array(  
"3" => "3",  
"2" => "2",  
"1" => "1",  
);  
?>  
  
<?  
foreach($menu as $eintrag => $datei){  
  
  if ($datei == basename($_SERVER['PHP_SELF']))  
  
  {  
   echo " &nbsp;<a class=\"pagination\" href=\"$datei\"><font color=\"#626ea0\">$eintrag</font></a> ";  
  }  
  
  else  
     {  
   echo " &nbsp;<a class=\"pagination2\" href=\"$datei\">$eintrag</a> ";  
  }  
  
}  
?>  

Da ja alle Seiten die Endungen .php hatten, wurde die Seitenzahl der aktuellen Seite hervorgehoben.

2. Nach dem ich alle Links umgeschrieben habe, haben sie auch keine Endungen mehr, sehen also so aus: http//seite.de/inhalt

Zwar funktioniert noch das Pagination Script, leider wird die aktuelle Seitenzahl nicht mehr hervorgehoben und sieht aus wie alle anderen eitenzahlen.

Wie kann ich das Script verändern, so dass die aktuelle Seitenzahl immer noch hervorgehoben wird?

Danke im Voraus!

  1. Hallo Yeenah,

    if ($datei == basename($_SERVER['PHP_SELF']))

      
    if ($datei == str_replace('.php','',basename($_SERVER['PHP_SELF')  
    
    

    Haut das so hin?

    1. Noch eine Frage - was gibt denn

      basename($_SERVER['PHP_SELF')

      bei dir aus?

      Müßtest dein Array da nich nur noch anpassen?

      • in meiner Zeile im vorherigen Posting fehlt noch eine schließende runde Klammer
      1. Funktioniert leider nicht, weil ich das Mod Rewrite nicht so gemacht habe:

        Vorher
        www.seite.de/seite.php

        Nachher
        www.seite.de/seite

        Die alte Adresse war sehr lang mit vielen Parametern, die habe ich dann verkürzt. Ich dachte eigentlich auch, ich könnte die arrays einfach ändern, aber dann stimmt die Adresse der Links nicht mehr. Ich darf sie also nur mit "1", "2" etc benennen.

        1. Hi Yeenah,

          Die alte Adresse war sehr lang mit vielen Parametern, die habe ich dann verkürzt. Ich dachte eigentlich auch, ich könnte die arrays einfach ändern, aber dann stimmt die Adresse der Links nicht mehr. Ich darf sie also nur mit "1", "2" etc benennen.

          Probier mal $_SERVER['SCRIPT_NAME'] zu verwenden, denn $_SERVER['PHP_SELF'] hängt teilweise von mod_rewrite ab, wie du gemerkt hast und kann ggf. durch den Client manipuliert werden (siehe hierzu auch im Archiv).

          Viele Grüße,
            ~ Dennis.

        2. Ave Yeenah!

          Vorher
          www.seite.de/seite.php

          Nachher
          www.seite.de/seite

          Die alte Adresse war sehr lang mit vielen Parametern, die habe ich dann verkürzt. Ich dachte eigentlich auch, ich könnte die arrays einfach ändern, aber dann stimmt die Adresse der Links nicht mehr. Ich darf sie also nur mit "1", "2" etc benennen.

          Über exakt dieses Problem hatte ich mir neulich auch Gedanken gemacht, mit Chris Hilfe kam da auch was ganz brauchbares bei raus.

          Grüße aus H im R an Yeenah,
            Primus Enginus*