T0mmy Skrevet 14. juni 2006 Del Skrevet 14. juni 2006 Hei Kan noen fortelle meg hvordan .htaccess-fila skal se ut dersom brukeren må skrive inn: http://www.minside.no/level1/level2/level3 og internt på serveren blir sendt til: http://www.minside.no/page.php?art=level1&...vel2&cat=level3 Har prøvd følgende, uten at dette virker: Options All -Indexes RewriteEngine on RewriteRule ^(.+)/(.+)/(.+)$ $1/$2/$3/ [R] RewriteRule ^(.+)/(.+)/(.+)/$ page.php?art=$1&id=$2&cat=$3 [QSA,L] Hvis dere ikke skjønner hvor jeg vil, er det bare å spørre så jeg kan utdype problemet. Tilleggsspørsmål: Hva er forskjellen på å bruke (.+) og (.*) ? Lenke til kommentar
Jonhoo Skrevet 14. juni 2006 Del Skrevet 14. juni 2006 (.+) Betyr en eller flere av hva som helst, resultatet lagres i $1 (.*)? Betyr null eller flere av hva som helst frem til første oppdagelse av det som står etter ? (Mulig du må bruke (.*?), i så fall vet jeg ikke hva (.*)? gjør...) Lenke til kommentar
T0mmy Skrevet 14. juni 2006 Forfatter Del Skrevet 14. juni 2006 (Mulig du må bruke (.*?), i så fall vet jeg ikke hva (.*)? gjør...) 6309616[/snapback] Spørsmålstegnet stod der bare fordi det var et spørsmål. Har du noen forslag til hva jeg kan gjøre med .htaccess-fila for å få den til å virke? Lenke til kommentar
Jonhoo Skrevet 14. juni 2006 Del Skrevet 14. juni 2006 Sorry, vet det ikke... Akkurat Apache og .htaccess kjenner jeg ikke så godt til.. Men synes nå det er merkelig med måten du gjør det på.. Hvorfor ikke bruke mod_rewrite? .+ = En eller flere .* = Null eller flere Lenke til kommentar
T0mmy Skrevet 14. juni 2006 Forfatter Del Skrevet 14. juni 2006 (endret) Men synes nå det er merkelig med måten du gjør det på.. Hvorfor ikke bruke mod_rewrite? 6309753[/snapback] Den eneste grunnen til at jeg bruker .htaccess er fordi jeg bruker den til å forhindre directory listing og hotlinking. Hvis det finnes lettere metoder, er jeg veldig åpen for dette, så lenge jeg får oppsettet som jeg vil. Hvordan fungerer mod_rewrite da? Problemet er løst! For å få det resultatet jeg ville, måtte jeg skrive følgende i .htaccess: Options All -Indexes RewriteEngine on RewriteRule ^([^/\.]+)/?$ page.php?art=$1 RewriteRule ^([^/\.]+)/([^/\.]+)/?$ page.php?art=$1&id=$2 RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ page.php?art=$1&id=$2&cat=$3 Endret 14. juni 2006 av T0mmy Lenke til kommentar
FraXinuS Skrevet 14. juni 2006 Del Skrevet 14. juni 2006 Jeg testet dette på serveren siden min nå, og har fått laget urlene. Men problemet er at hvis jeg går inn på en av de nye urlene, f.eks www.side.com/A/test.html, så kommer jeg til siden jeg skal, men når jeg kommer inn på siden så skifter urlen tilbake til den gamle. Noen som vet hvordan jeg fikser det? Lenke til kommentar
T0mmy Skrevet 14. juni 2006 Forfatter Del Skrevet 14. juni 2006 Jeg testet dette på serveren siden min nå, og har fått laget urlene. Men problemet er at hvis jeg går inn på en av de nye urlene, f.eks www.side.com/A/test.html, så kommer jeg til siden jeg skal, men når jeg kommer inn på siden så skifter urlen tilbake til den gamle. Noen som vet hvordan jeg fikser det? 6310738[/snapback] Du mener altså at når du f.eks. skriver inn side.com/A/test, så blir du vist side.com/A/test.html ? Og at adresselinja da viser side.com/A/test.html ? Er du sikker på at siden som vises ikke bruker de gamle linkene, men de nye? Lenke til kommentar
FraXinuS Skrevet 14. juni 2006 Del Skrevet 14. juni 2006 (endret) f.eks hvis den gamle urlen er: www.side.com/view.php?cat=A&page=Aha.html så har jeg fikset slik at www.side.com/A/Aha.html peker til den samme urlen som over. Men hvis jeg går inn på www.side.com/A/Aha.html, så skifter urlen i adressefeltet tilbake til den gamle www.side.com/view.php?cat=A&page=Aha.html. Jeg vil at etter jeg har kommet inn på siden så skal den nye urlen, www.side.com/A/Aha.html, fortsette å være i adressefeltet. Endret 14. juni 2006 av FraXinuS Lenke til kommentar
T0mmy Skrevet 14. juni 2006 Forfatter Del Skrevet 14. juni 2006 Blir det noe bedre hvis du endrer alle "([^/\.]+)" i .htaccess-fila til "([^/\]+)" ? Dvs: du fjerner punktumet? Lenke til kommentar
FraXinuS Skrevet 15. juni 2006 Del Skrevet 15. juni 2006 Tror ikke det er det jeg skrev i .htaccess fila som er problemet. Problemet er at når jeg skriver inn de nye urlene så blir jeg redirecta til de gamle urlene. F.eks hvis jeg går inn på en side som har den gamle urlen, også fikser jeg htaccess fila slik at den sida får ny url, også hvis jeg går inn i browseren og oppdaterer siden da, så vil jeg at den nye urlen skal komme fram. Lenke til kommentar
T0mmy Skrevet 15. juni 2006 Forfatter Del Skrevet 15. juni 2006 Det er mulig det er fordi klokka er kvart over to, men jeg skjønner ikke helt problemet. Hvis du har satt opp .htaccess-fila på samme måte som meg, men med andre navn og variabler, betyr det at når du skriver inn www.side.com/A/Aha.html i adresselinja, så blir du vist siden www.side.com/view.php?cat=A&page=Aha.html, men likevel skal www.side.com/A/Aha.html bli stående i adresselinja. Hvis denne siden skal ha en link til dokumentet test.html, må dette skje ved å bruke www.side.com/A/test.html og ikke www.side.com/view.php?cat=A&page=test.html. Poenget med .htaccess-fila er jo å skjule fil- og inkluderingsstrukturen på siden din, så derfor må du aldri linke til den egentlige siden, men heller bruke de linkene som blir omskrevet i .htaccess-fila, som f.eks. www.side.com/B/enellerannenside.html Når du oppdaterer siden, vil aldri adresselinja forandre seg. Nettleseren oppdaterer jo bare den URL'en som allerede står i adresselinja. Lenke til kommentar
FraXinuS Skrevet 15. juni 2006 Del Skrevet 15. juni 2006 Ok, jeg tror jeg har funnet problemet. Etter den regular expression saken så hadde jeg skrevet full url med www.navnetpåsiden.com, jeg fjernet den delen og nå funker det. Lenke til kommentar
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å