Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

Jeg bruker denne:

 

<?php

        /* I N K L U D E R I N G S S K R I P T
         * v 1.0
         *
         * Skrive av Ola Mjanger (2005)
         *
         * Artikkel om inkludering med PHP: http://www.norskwebforum.no/viewtopic.php?t=12111
         *
         *
         */

        /* I N N S T I L L I N G A R */
        /* Lim inn på toppen av dokumentet
         * Forandre variablane etter dine ønsker */

        $handlername = 'page';                      // her blir linkane ?side=xxx. Forandre til det du bruker
        $defaultSide = 'home.php';               // den fila som blir inkludert dersom inga side er etterspurt i URL-en
        $includePath = './';           // stien til mappa sidene som skal inkluderast ligg i
        $errorPage   = 'inc/404.php';                   // fila som blir inkludert dersom ei side som ikkje ligg i mappa blir etterspurt
        $fileEnding  = '.php';                      // filendelsen på filane som skal inkluderast

        /* S C R I P T S T A R T */
        /* Første delen henter variabelen i url-en og alle filnavn i mappa du skal inkludere frå */
        /* Treng ikkje endrast */

        $URLside = &$_GET[$handlername];            // lagar ein enklare variabel for variabelen sendt gjennom url-en

        $rep = opendir($includePath);               // åpnar mappa som er satt i $includePath
            while ($file = readdir($rep))
            {
                 if($file != '..' && $file !='.' && $file !='' && !is_dir($file))  // unngår mapper
                 {
                      $filer[]=$file;                 // legg alle filane i mappa inn i $filer-arrayet
                  }
              }
          closedir($rep);                             // lukker mappa



          if (!isset ($URLside))                      // viss det ikkje blir sendt ein variabel gjennom url-en for å bestemma kva side som skal inkluderast
          {
              $side = $includePath . $defaultSide;    // blir filen satt i $defaultSide inkludert
          } else {
              $side = $URLside . $fileEnding;            // legg til filendelsen satt i $filendelse for å

              if (in_array ($side, $filer)) {         // sjekker om den etterspurte sida er i arrayet
                  $side = $includePath . $side;       // inkluder sida
              } else {                                // ellers
                  $side = $includePath . $errorPage;  // inkluder filmeldinga, satt i $errorPage
              }
          }


          /* I N K L U D E R I N G S D E L */
          /* Lim inn der innhaldet skal inkluderast */

          include_once $side;                         // inkluderer sida som er bestemt gjennom diverse testar

?>

Lenke til kommentar

Du kan jo bare lage en mappe som heter home på localhost :new_woot:

 

Jeg trur du ikke skjønner helt.

Mangen, og jeg, syns det er fælt å ha ?page=user&id=ola.nordmann&album=66235621&photo=01

Derfor liker jeg, og mangen å ha; /User/Ole.Nordmann/Album/Sommeren_2009/Bilde/01/

Endret av Goldfiner
Lenke til kommentar

Det er bedre å bruke mod_rewrite, da det er raskere og lettere å vedlikeholde. Om man "sprer" .htaccess filer "overalt" så kan man fort glemme de, og feilsøking kan fort bli vanskelig.

 

Selvsagt kun om man har tilgang til httpd.conf (som typisk ligger i /etc/apache2/httpd.conf på en debian-installasjon). Dessuten er det snakk om hva standarden sier, og ikke minst performance:

 

- .htaccess må leses og tolkes hver gang en side lastes, og sjekkes hver gang hver eneste fil blir lastet fra en side. Dvs. om du har mange bilder vil denne lastes en gang for hvert eneste bilde.

 

- httpd.conf derimot blir compiled ved start, og kjøres native i programmet og er derfor raskere.

Lenke til kommentar
Om man "sprer" .htaccess filer "overalt" så kan man fort glemme de, og feilsøking kan fort bli vanskelig.

Nå skal det ikke være nødvendig med noe særlig mer enn én .htaccess liggende i roten da.. :)

 

En enkel løsning:

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/
RewriteRule ^(.*)/$ index.php?page=$1

 

Ellers ser løsningen Torbjørn fant spennende ut!

Endret av agrimsrud
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...