ThaKladd Skrevet 10. juli 2010 Skrevet 10. juli 2010 Hei Har ikke funnet noe svar på dette fordi jeg ikke helt vet hva jeg skal søke på - og når jeg søker på .htaccess rewrite så kommer det alltid opp enkle eksempler og aldri hva disse medfører i prakis av problemer. Så, mitt probler ligger i følgende rewrite av url: RewriteRule ^([a-zA-Z-]+)/?$ index.php?page=$1 det vil si at side.com/about/ går til side.com/index.php?page=about Problemet oppstår når jeg linker til en fil i en mappe som ligger på rot f.eks. side.com/css/ eller side.com/js/ når jeg er inne i side.com/about/ Både PHP og JavaScript tror da at side.com/about/ er stien hvor filen ligger -> og den godtar da ikke at jeg linker relativt dvs. href="css/stilark.css" eller i javascript ved ajax til en php fil som ligger i ajax/ajax_hent_resultat.php -> det tolkes til at jeg peker på side.com/about/ajax/ajax_hent_resultat.php Jeg vil kunne hente inn javascript både når jeg er i rot, altså side.com/ og når jeg er i about, side.com/about/ uteb å måtte skrive noe som sjekker hvor jeg er og endre stien i henhold til det, eller alltid måtte peke på hele stien. Finnes det en løsning?
Runar Skrevet 10. juli 2010 Skrevet 10. juli 2010 (endret) Prøv å legg følgende før RewriteRule-regelen: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d Denne sørger for at du kan linke direkte til en fil eller mappe, uten å få problemer. Redigert: Du finner mye nyttig informasjon i dokumentasjonen for mod_rewrite. Endret 10. juli 2010 av Runar
ThaKladd Skrevet 10. juli 2010 Forfatter Skrevet 10. juli 2010 (endret) Det fungerer ikke. Edit: Er ikke linkingen til mapper som er problemet, men at linkene ikke tar utgangspunkt i rota - linkene tror at url er mappestrukturen og at der hvor url er - er rota. Så lenge jeg peker rett på side.com/css/fil.css så fungerer det, men en relativ sti, som css/fil.css fungerer ikk fordi den da tror filen er i side.com/side/css/fil.css Endret 10. juli 2010 av ThaKladd
Runar Skrevet 10. juli 2010 Skrevet 10. juli 2010 Det er ikke mod_rewrite sin feil. Du må angi at det er en mappe/fil på rotnivå ved å starte med en /. Det blir da /css/fil.css istedet for css/fil.css
ThaKladd Skrevet 10. juli 2010 Forfatter Skrevet 10. juli 2010 Har jo selvsagt prøvd det, uten hell. Tror jeg er på sporet av feilen likevel. Jeg jobber lokalt -> på 127.0.0.1/side/ som rot, men HTML definerer 127.0.0.1 som rot og ikke mappen der index filen er. Jeg har alltid gått ut ifra at der index filen er = rota (logisk nokk), og dermed sluppet unna med css/fil.css. Slik er det altså ikke - og det er dumt når man jobber lokalt med flere sider. Fikk bare problem med det når jeg la til Rewrite, på grunn av at URL ikke lenger hadde utgangspunkt i index.php som før - men i plasseringen gitt i url. Må vel bare prøve å finne en workaround som gjør det lett å oppdatere live uten å måtte skifte i kode først...
Runar Skrevet 10. juli 2010 Skrevet 10. juli 2010 Kanskje RewriteBase eller (html-tag) kan hjelpe deg?
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå