Gå til innhold

mod_rewrite - står fast! :(


Anbefalte innlegg

Kjører samme system på 2 domener.

På den ene kjører den rett fra rot (http://side.no) og på den andre kjører den i submapper (http://side2.no/mappe1/mappe2).

 

Jeg skal legge en .htaccess fil på rot på den ene og i mappe1/mappe2 på den andre.

Kan noen fortelle meg hvordan jeg skal få denne rewrite_rulen til å funke?

# Nyheter (http://side.no/<sideID>/nyhet/<nyhetID>/)
RewriteRule ^([0-9]+)/nyhet/([0-9]+)/([^/]*)/$ /index.php?side=$1&nyhet=$2 [L]
RewriteRule ^([0-9]+)/nyhet/([0-9]+)/([^/]*)$ /index.php?side=$1&nyhet=$2 [L]

Lenke til kommentar
Videoannonse
Annonse

Du bruker ikke 3dje argumentet i regexen for php filen. Ikke at det trengs, men du burde gi en eksempel url hvis du vil matche den...

Ikke sikker, kanskje slik?

RewriteRule /([0-9]+)/nyhet/([0-9]+)/?$ /index.php?side=$1&nyhet=$2 index.php?side=$1&nyhet=$2

Ikke sikker på regex i mod_rewrite...

Lenke til kommentar
Du bruker ikke 3dje argumentet i regexen for php filen. Ikke at det trengs, men du burde gi en eksempel url hvis du vil matche den...

Ikke sikker, kanskje slik?

RewriteRule /([0-9]+)/nyhet/([0-9]+)/?$ /index.php?side=$1&nyhet=$2 index.php?side=$1&nyhet=$2

Ikke sikker på regex i mod_rewrite...

Er du helt surrete? Det tredje argumentet for en RewriteRule er flags. PHP har ingenting med Apaches .htaccess-filer å gjøre.

Ikke svar når du ikke vet om svaret ditt er riktig, fordi du ikke er kjent med det du prøver å svare på. Da kaster du bare bort alles tid. RewriteRule tar to argumenter for å fungere:

RewriteRule Pattern Substitution

Til trådstarter: Jeg skjønner ikke regexene dine helt. Hvis du ønsker at /[iD]/nyhet/[iD]/ skal redirectes til index.php?side=[iD]&nyhet=[iD], så legger du følgende regler i .htaccess i webroot:

RewriteEngine on
RewriteRule ^([0-9]+)/nyhet/([0-9]+)/?$ index.php?side=$1&nyhet=$2

Med mindre du har mange regexer og spesielle krav, trenger du ikke L-flagget i reglene dine. Jeg skjønner heller ikke helt hva du bruker denne til, siden du fanger den opp, men ikke bruker den i substitution-uttrykket: ([^/]*)/. Derfor har jeg fjernet den fra reglene ovenfor.

Lenke til kommentar
Er du helt surrete? Det tredje argumentet for en RewriteRule er flags. PHP har ingenting med Apaches .htaccess-filer å gjøre.

Ikke svar når du ikke vet om svaret ditt er riktig, fordi du ikke er kjent med det du prøver å svare på. Da kaster du bare bort alles tid. RewriteRule tar to argumenter for å fungere:

Hysj. Med det tredje argumentet mente eg ([^/]*) i regex. Så ikke eg postet index.php?side=$1&nyhet=$2 to ganger.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...