Meddelande

Minska
No announcement yet.

Behöver hjälp med Rewrite i .htaccess

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Behöver hjälp med Rewrite i .htaccess

    Sitter med min .htaccess på Apache på Loopia's webbhotell och behöver hjälp med rewrite.

    Vad jag vill åstadkomma

    a. Om man besöker nyheter.php?id=1 ska man komma till nyheter/1.

    Frågor

    1. Hur ska rewrite i .htaccess se ut för att åstadkomma punkt a ovan?
    2. Om jag besöker nyheter.php?id=1 visas artikeln helt korrekt eftersom jag kan plocka ut idt med hjälp av $_GET[id]. MEN om jag besöker nyheter/1, hur får jag då tag på idt till min databasfråga? Det går väl inte med $_GET[id]. Skriv ett exempel på hur databasfrågan skulle se ut.

    Tack på förhand!

  • #2
    Är du helt säker på att det är det du vill åstadkomma? Det brukar vara precis motsatt effekt man är ute efter, dvs om besökaren anger adressen http://www.domän.se/nyheter/1 så körs http://www.domän.se/nyheter.php?id=1.

    Om det trots allt är som du skriver, är det index.php som ska ta hand om samtliga anrop?
    "Det finns tre sorters lögn; vanlig lögn, förbannand lögn och statistik" - Mark Twain

    Kommentera


    • #3
      Självklart har du rätt. Det ska vara tvärtom som du skriver. Besöker man nyheter/1 är det ju nyheter.php?id=1 som ska köras även om besökaren bara ska se nyheter/1.

      Kommentera


      • #4
        Då borde nånting liknande detta fungera
        Kod:
        RewriteEngine On
        RewriteRule ^nyheter/([^/]+)/? nyheter.php?id=$1 [L]
        "Det finns tre sorters lögn; vanlig lögn, förbannand lögn och statistik" - Mark Twain

        Kommentera


        • #5
          jag kör en sådan rewrite på min sida, men min rewrite funderar på hela min sida, gjort en liten simpel MVC.

          Men jag har i ditt läge skrivit en rewrite som liknar detta

          [kod]
          RewriteEngine On
          RewriteBase /

          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteCond %{REQUEST_FILENAME} !-l

          RewriteRule ^(.+)$ nyheter.php?id=$1 [QSA,L]
          [/kod]

          du kan även ta bort RewriteBase om du vill, den är bra i fall du har flera htaccess filer på din server. men som det är skriven nu så ska det ligga helst i rooten, annars kan det medföra trevliga fel. men skulle den ligga i en undermapp eller liknande så skriver du hela mapp strukturen där på RewriteBase på en rad med bara ett / som skiljetecken mellan mapparna.

          hoppas detta hjälper dig

          Kommentera

          Working...
          X