[Apache, Mod Rewrite] /index.php?var=1 omzetten naar /

Pagina: 1
Acties:

  • Icey
  • Registratie: November 2001
  • Laatst online: 19-08 10:39
Goedendag,

Soms kom je van die geweldige opties tegen. Éen daarvan is Apaches Mod Rewrite, de mogelijkheden hiervan zijn oneindig, zelfs loadbalancing is theoretisch mogelijk. Echter bedenk ik altijd weer iets wat niet 1-2-3 schijnt te kunnen, of ik maak ergens een kritieke fout.

Mod Rewrite is goed gedocumenteerd, en er zijn duizenden voorbeelden op het internet te vinden waarin een website.nl/hoi/ omgezet word in een website.nl/pagina.php?var=hoi. Echter wil ik het juist andersom doen.

Ik wil dat die lelijke url website.nl/pagina.php?var=1 omgezet word in website.nl/, of anders met een pagina.php erachter, dat vind ik dan niet eens zo erg.

Wat ik gedaan heb is een website.nl/test/ om laten zetten naar een website.nl/pagina.php?var=1 dmv het volgende:

code:
1
RewriteRule   ^test/$  /pagina.php?var=1 [R]


Dit werkt prima, echter staat er in de url nu wel website.nl/pagina.php?var=1 ipv het veel mooiere website.nl.

Nu denken jullie "waarom gebruik je niet het voorbeeld uit de FAQ?". Dat werkt opzich ook prima. Maar dan kan ik niet website.nl/test/ laten verwijzen naar website.nl/pagina.php?var=1. Voor sommige klinkt het waarschijnlijk te ingewikkeld. Maar ik heb het gevoel dat ik zelf ondertussen ook de weg kwijt ben.

[ Voor 5% gewijzigd door Icey op 27-04-2005 21:39 ]


  • Icey
  • Registratie: November 2001
  • Laatst online: 19-08 10:39
Wellicht is mijn uitleg te ingewikkeld, wellicht is het geen ik wil te simpel of onmogelijk, of wellicht doe ik iets fout.

Ik zal het voorbeeld maar geven, http://3dfx.i-cey.net/. Bovenaan staan de linkjes keurig naar bijv /voodoo/ die linkt naar index.php?pagina=2. Eigenlijk is het eerste wel goed, maar graag zou ik hetgeen wat in de url staat (index.php?pagina=2) het liefst zien verdwijnen.

  • DeTeraarist
  • Registratie: November 2000
  • Laatst online: 22-08 19:06

DeTeraarist

#Boots2Asses

nouw, ik denk niet dat je uitleg ingewikkeld is, ik denk dat je oplossing te ingewikkeld is. Een en ander zou je namelijk ook kunnen oplossen door je hele site in een frame te gooien.

nou heb ik ook niet veel verstand van mod_rewrite moet i kje ezeggen, maar is 't niet zo dat mod_rewrite bezig gaat voordat een pagina geparsed wordt? Op deze manier zou je dan dus je variabelen verliezen.

Soms, als ik heel stil ben, kan ik de zon horen schijnen


  • Icey
  • Registratie: November 2001
  • Laatst online: 19-08 10:39
Iframe/frame is een oplossing. Echter doe ik een poging om een zo'n lynx vriendelijk mogelijke website te bouwen. En met een iframe bijv. krijg je imho een iets minder mooier oplossing...

http://3dfx.i-cey.net/putty.png <-- zo ziet dat er nu uit, lekker makkelijk en overzichterlijk :).

  • Sabbi
  • Registratie: December 2000
  • Laatst online: 23:25

Sabbi

je denkt aan mij.

hum, je moet gewoon die tag [R] weglaten.

  • Icey
  • Registratie: November 2001
  • Laatst online: 19-08 10:39
Als ik dat doe dan krijg ik iets vreemds met directorys. Ik kan dan zegmaar 2x op dezelfde knop drukken waardoor ik dus naar http://3dfx.i-cey.net/about/about/ ga, en daarna een 404 krijg.

Zal ongetwijfeld komen door de slashes ergens:

RewriteRule ^about/$ /index.php?pagina=1

Ik ga weer wat proberen :).

  • TRON
  • Registratie: September 2001
  • Laatst online: 16-08 07:26
code:
1
2
3
4
RewriteEngine On 
RewriteBase /

RewriteRule ^profile(|\/)$          index.php?page=profile

Leren door te strijden? Dat doe je op CTFSpel.nl. Vraag een gratis proefpakket aan t.w.v. EUR 50 (excl. BTW)


  • Icey
  • Registratie: November 2001
  • Laatst online: 19-08 10:39
TRON schreef op donderdag 28 april 2005 @ 13:34:
code:
1
2
3
4
RewriteEngine On 
RewriteBase /

RewriteRule ^profile(|\/)$          index.php?page=profile
Gek genoeg werkt dat niet helemaal volgens mij. Zelfde probleem als wat ik eerder tegen kwam. http://3dfx.i-cey.net/, als ik dan klik op "about 3dfx" (heb alleen die toegepast) dan werkt het en kom ik terecht op http://3dfx.i-cey.net/about/ echter, als ik daarna op een linkje klik dan wil hij een url openen die niet bestaan.

  • TRON
  • Registratie: September 2001
  • Laatst online: 16-08 07:26
Dat is omdat de browser opvraag http://3dfx.i-cey.net/about/andere_pagina ipv http://3dfx.i-cey.net/andere_pagina. De URL die je gebruikt moet naar de root van je pagina verwijzen.

Leren door te strijden? Dat doe je op CTFSpel.nl. Vraag een gratis proefpakket aan t.w.v. EUR 50 (excl. BTW)

Pagina: 1