Toon posts:

[Apache] Mod_rewrite vraag

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal :)

Ik zit met een volgens mij vrij simpele mod_rewrite kwestie. Ik heb een dynamische site gebouwd met een Mysql db eronder. ik gebruik alleen statische URLs op mijn pagina's en die rewrite ik met de volgende regels in mijn .htaccess naar dynamische URLs:
code:
1
2
3
4
RewriteRule ^c([0-9]+)$ artcat.php?article_type=$1 [L]
RewriteRule ^c([0-9]+)/([0-9]+)/([0-9]+).*.html article.php
               article_type=$1&article_id=$2&pagenumber=$3 [L]
Rewriterule ^c([0-9]+)/([0-9]+)/id/([0-9]+).*.html id.php?id_id=$3 [L]

Bijvoorbeeld de derde .htaccess regel verandert deze URL

http://www.mijnwebsite.nl/c1/9/id/2.patat_pinda.html in
http://www.mijnwebsite.nl/id.php?id_id=2

Maar nu het probleem:

De URL http://www.mijnwebsite.nl/c1/9/id/2.friet_sate.html zal OOK naar http://www.mijnwebsite.nl/id.php?id_id=2 geschreven worden en dat is niet de bedoeling. Elke keer dat ik nu een typo maak in een der statische URLs op mijn pagina's (patat_pindaa, patat_pnda) creëer ik een nieuwe pagina met exact dezelfde inhoud als de goed gespelde pagina. Zoekmachines worden daar niet vrolijk van en ik zelf ook niet.

Wat ik nodig heb is een RewriteRule of een Redirect die alle foute URLs doorverwijst/omschrijft naar de goede. Ik zit hier al zo'n 2 dagen op te proberen, maar het lukt me potdomme niet en van de Apache documentatie word ik ook niet veel wijzer. Ik heb wel een regel die 1 specifieke fout kan doorverwijzen dus ik heb het idee dat ik er bijna ben:
code:
1
2
RewriteRule /2\.hierstaateenfout\.html$
 http://www.mijnwebsite.nl/c1/9/id/2.patat_pinda.html? [R=301,L]

Om een lang verhaal kort te maken: Hoe bouw je dit zodat het wél werkt:
code:
1
2
RewriteRule /2\.*\.html$
 http://www.mijnwebsite.nl/c1/9/id/2.patat_pinda.html? [R=301,L]

[ Voor 23% gewijzigd door Verwijderd op 03-07-2004 14:23 ]


Verwijderd

Topicstarter
Een klein kickje. Kan iemand mij hier mee helpen? De lange post schrikt misschien een beetje af. In feite is alleen het allerlaatste belangrijk. bvd.

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Kun je dit niet oplossen met een Alias? Werkt wel iets anders maar is wel wat mee te doen denk ik.
Als je bijvoorbeeld dit doet:
code:
1
Alias /topics /jouw/document/root/index.php

Kun je het volgende invoeren: http://www.jouwsite.nl/topics/patat_pinda/
Je index.php kan dan via $_SERVER['REQUEST_URI'] uitvogelen welke pagina je wil.

Nu met Land Rover Series 3 en Defender 90


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Semi-offtopic maar wel relevant: heb je wel eens wat gelezen over 'hackable' en readable URL's? Wat dat zijn deze 2 geen van beide...

Lees bijvoorbeeld eens dit lijstje door, en vraag je daarna af of je dit regex-probleem nog wel hebt ;)

Professionele website nodig?


Verwijderd

Topicstarter
MTWZZ schreef op 05 juli 2004 @ 09:15:
Kun je dit niet oplossen met een Alias? Werkt wel iets anders maar is wel wat mee te doen denk ik.
Als je bijvoorbeeld dit doet:
code:
1
Alias /topics /jouw/document/root/index.php

Kun je het volgende invoeren: http://www.jouwsite.nl/topics/patat_pinda/
Je index.php kan dan via $_SERVER['REQUEST_URI'] uitvogelen welke pagina je wil.
Ik vind deze oplossing eerlijk gezegd niet zo netjes. Eerst doorsturen naar index.php en daar preg_matchen op de $REQUEST_URI en daarna weer doorsturen klinkt mij niet zo fijn in de oren. Je gaat daarmee ook voorbij aan de mogelijkheden van .htaccess. Desalniettemin bedankt voor de tip.
Semi-offtopic maar wel relevant: heb je wel eens wat gelezen over 'hackable' en readable URL's? Wat dat zijn deze 2 geen van beide...

Lees bijvoorbeeld eens dit lijstje door, en vraag je daarna af of je dit regex-probleem nog wel hebt
Ik heb het artikel gelezen en je hebt inderdaad groot gelijk. Mijn URLs zijn echter het resultaat van een lange overweging. Ik moet de nodige variabelen kwijt in de URLs om de eigenschappen, layout en pagina van het juiste artikel te laden. Daarnaast zijn deze URLs een experiment met een nieuwe directory en link structuur die beter de nadruk op verschillende thema's in mijn site moet leggen.
Op mijn beurt kan ik je dit artikel aanraden. Ik heb dus bewust ingeleverd op usability omwille van het experiment. Maar maak je geen zorgen hoor. Ik ondervang de brakke URLs met een zeer duidelijke en herkenbare navigatie.

Goed, allemaal leuk en aardig, maar weet iemand nou hoe je het onderstaande werkend maakt?

code:
1
2
RewriteRule /2\.*\.html$
 http://www.mijnwebsite.nl/c1/9/id/2.patat_pinda.html? [R=301,L]


Ik weet dat alles klopt behalve de *. Het sterretje moet als wildcard werken, maar dat doet het dus niet. Ideeën?

[ Voor 6% gewijzigd door Verwijderd op 05-07-2004 16:15 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Verwijderd schreef op 05 juli 2004 @ 16:13:
[...]

Ik heb het artikel gelezen en je hebt inderdaad groot gelijk. Mijn URLs zijn echter het resultaat van een lange overweging. Ik moet de nodige variabelen kwijt in de URLs om de eigenschappen, layout en pagina van het juiste artikel te laden. Daarnaast zijn deze URLs een experiment met een nieuwe directory en link structuur die beter de nadruk op verschillende thema's in mijn site moet leggen.
Interessant artikel geef je erbij, maar ik vraag me vooral af wat het in godesnaam in je URL doet.

Alles wat je noemt kun je namelijk uit je database trekken aan de hand van een 'human readable ID' dat je in de URL stopt, en dan kun je in de DB alsnog die hele structuur mappen zoals je 'm wilt hebben.

Professionele website nodig?


Verwijderd

Topicstarter
Mjah, dat is waar. Dat is een kwestie van 1 tabelletje toevoegen. Omwille van de dir structuur wil ik het toch zo doen. Niet dat je geen dir structuur met woorden kan hebben, maar mijn URLs zouden erg lang worden (en ook URL lengte zou van invloed zijn in SERP rankings. Zoals je ziet ben ik vrolijk aan het experimenteren. Op het engelstalige internet is de concurrentie grOOt en ik wil zien of o.a. dit voordeel oplevert). De belangrijkste woorden (patat_pinda.html) zijn gelukkig wel in mensentaal. Ik ben bezig met een andere site met een minder diepe dir structuur. Daarop ga ik deze tip zeker toepassen.

Een interessante uitweiding, maar mijn .htaccess vraagje staat nog :P

[ Voor 4% gewijzigd door Verwijderd op 05-07-2004 16:50 ]

Pagina: 1