Gå til innhold

.htaccess og php; omgå rewriterules


Anbefalte innlegg

Jeg har en .htaccess fil som sender alle forespørsler til index.php. Denne skal behandle alle forespørsler og inkludere rett fil. Problemet oppstår. Etter litt brainstorming kom jeg fram til at .htaccess filen sender include forespørslene tilbake til index.php. Resultatet? evig loop. Hvordan fikser jeg dette?

 

EDIT:leif i tittel

Endret av MBaardsgaard
Lenke til kommentar
Videoannonse
Annonse

Den har akkurat samme effekt som den gamle.. Jeg fant et rart triks: Ved å legge til filendelsen .txt på listen og rename alle inkluderingsfiler til .txt, funker alt glimrende. En heller laber løsning, for da opphører cutenews selvsagt å virke.

 

Dessuten, så har dette problemet sklidd ganske inn på PHP. derfor ny tråd.

Lenke til kommentar



   <?php
if (isset($_SERVER["HTTP_USER_AGENT"])) {
if (preg_match("/msie.[4|5|6]/i", $_SERVER['HTTP_USER_AGENT'])) {
   print "<li><a href=\"index.php?side=bytt\">Jeg ser du bruker Internet Explorer. Ta en titt innom \"bytt nettleser\" siden min og vit at jeg har lagt inn masse søppelkode på denne siden slik at dere IE brukere skal få se siden nogenlunde korrekt ihvertfall..</a></li>";
}
}

?>
 </ul>
 <div id="centerframe"> 
   <p class="info">Du er her: 
     <?php
$out = "";
$side = $_SERVER['REQUEST_URI']; //henter tillellinje stuff
$side = explode('/', $side);
array_shift($side);
$sistelink = count($side) - 2; // teller hvor mange nivå som eksisterer
$i = 0;
$out .= "Hovedsiden ";
foreach($side as $sistelink){ //Bygger en "du er her" ting
$out .= "» $side[$i] ";
$i++;
}
echo $out; //printer ut "du er her" ting
?>
   </p>
   <div id="content"> 
     <?php
$path = "http://localhost/";
$tittellinje = $_SERVER['REQUEST_URI']; //Henter tittellinje
if(file_exists($path.$tittellinje) and ($SCRIPT_FILENAME!=$DOCUMENT_ROOT.$tittellinje) and ($tittellinje!="/")){ //finnes adressen? da går vi bare til den da..
      header($DOCUMENT_ROOT.$tittellinje);
      exit();
}
$tittellinje=strip_tags($tittellinje); /
$tittellinje="$tittellinje/";
$tittellinje=str_replace('//', '/', $tittellinje);  //Bugfix
$tittellinje=explode("/", $tittellinje); //ny array over tittellinjen


if($tittellinje != "") {
     if($tittellinje[0]==".."){ //Wannabee - hacker prøver seg.  Returner 404
              $tittellinje[0] = "404";
    }
 }
if($tittellinje[0] == ""){ //hvis det ikke er skrevet noen annet enn grunnurl så må vi vel returnere hovedsiden?
    $tittellinje[0] = "hovedside";
    }
$sistelink = count($tittellinje) - 2;
$urltilfil = $path . 'sub' . $sistelink . '/' . $tittellinje[$sistelink] . '.php';

include($urltilfil); //inkluderer ønsket
?>

]Mest sannsynlig så er koden egentlig beregnet på databaser.. Det er nok .htaccess som er enklest å fikse på i dette tilfellet.

Endret av MBaardsgaard
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...