Gå til innhold

hjelp med mod_rewrite()


Anbefalte innlegg

Skrevet

Har nå en stund prøvd å få mod_rewrite til å funke, men til ingen nytte.

 

.htaccess ser i skrivende stund slik ut:

 

Options		 +FollowSymLinks
RewriteEngine   On
RewriteBase	 /

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

RewriteRule	 ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$   /Site2/index.php?pg=$1&id=$2 [L,QSA]

 

og som det kanskje kommer fram, vil jeg at URLen:

/Site2/index.php?&pg=$1&id=$2

skal bli slik:

/Site2/index/$1/$2/

 

Men hvis jeg nå prøver dette på siden min, gir hverken $_GET['$1'] eller $_GET['$2'] noe resultat.

Kan dette være fordi jeg kjører på localhost eller har jeg gjort noe annet galt?

 

PS: $1 og $2 er selvfølgelig bare eksempel-verdier

Videoannonse
Annonse
Skrevet (endret)

Prøv å bruke $_GET['pg'] og $_GET['id'], siden det er de GET-variablene du sender til scriptet.

 

Edit: Ser at du bruker absolutte filbaner. Vær oppmerksom på at mod_rewrite vil lete etter /Site2/index.php fra root, og ikke relativ til filbanen til .htaccess-fila.

Endret av Lokaltog
Skrevet

Selvfølgelig bruker jeg $_GET['pg'] og $_GET['id'] og /Site2 ligger i root. Hele adressen til index.php er http://localhost/Site2/index.php

 

Noen flere tips? Kan det være at det ikke er inkludert i min installering av apache? Kjører MAc OS X Leopard og den installasjonen av apache som kommer standard med Leopard.

Skrevet

Prøv følgende: Legg .htaccess-fila i samme mappe som index.php, og endre rewriterule'n til:

 

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ index.php?pg=$1&id=$2 [L,QSA]

Gjest Slettet+1298342134
Skrevet

Funker hos meg test her.

Her er .htaccess filen:

<IfModule mod_rewrite.c>
Options		 +FollowSymLinks
RewriteEngine   On
RewriteBase	 /

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

RewriteRule	 ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$   /skogen/hw/index.php?pg=$1&id=$2 [L,QSA]
</IfModule>

 

Er du sikker på at modulen kjører på serveren din?

Gjest Slettet+1298342134
Skrevet

Skift RewriteRule og se om du kommer til index.php når du skriver path til en mappe/fil som ikke finnes.

RewriteRule . /index.php

 

Kanskje står det i phpinfo() også, usikker:]

  • 2 måneder senere...
Skrevet

RewriteEngine on
RewriteBase /
RewriteRule ^(.+)/([a-zA-Z0-9+-]+)/?$ /test/?page=$1&title=$2

 

Her vil localhost/article/om-microsoft gi meg rett artikkel. Men jeg ser at hvis $2 ikke er tilstede, feiler mod_rewrite.

d.v.s. hvis jeg f.eks. går localhost/kontakt vil apache gi 404, og ikke /test/page=kontakt som jeg vil den skal gi. Hvordan løser jeg dette?

Skrevet (endret)
Er du sikker på at modulen kjører på serveren din?

 

Nei, hvordan kan jeg teste dette?

 

Mener du hvordan se om mod_rewrite er slått på?

 

Vis du har wamp:

venstreklikk på ikonet ->apache -> apache modules -> rewrite_module

Endret av php_user

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...