Gå til innhold

Spørsmål angående .htaccess


Anbefalte innlegg

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
Videoannonse
Annonse

(.+) 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
(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
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 av T0mmy
Lenke til kommentar

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

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 av FraXinuS
Lenke til kommentar

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

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

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