hallo,

ik wil graag de urls van mijn website wijzigen d.m.v. Mod rewrite en ik heb een tut op phptuts gevolgd.
alleen is mijn probleem nu dat ik nooit met een .htaccess bestand gewerkt heb en de link op phptuts voor uitleg geraadpleegd maar deze bestaat niet meer.

dus mijn vraag nu bestaat een .htaccess al gelijk op een webserver of maak ik dit gewoon aan met een leeg document door deze .htaccess te noemen ?

en zouden er meer dingen in moeten staan behalve hetgeen wat op phptuts staat?

bij voorbaat dank voor de hulp!
Reshadd farid op 16/03/2012 17:25:51

... of maak ik dit gewoon aan met een leeg document door deze .htaccess te noemen ...


Correct.
en hoef ik alleen de stuff van de mod_rewrite in te vullen? verder niks?

dus voorbeeld:

mijn url is: http://reshadfarid.nl/index.php?page=1

RewriteEngine On
RewriteBase /
RewriteRule ^/(.*)/$ ?page=1

is mijn htaccess dan goed?
Ja, prima. Heb je al getest?
Let wel dat je nu (bijna) alles doorstuurt naar ?page=1

page is dus niet page.php
=1 is dus niet =$1

Test het eens?
ik heb dit al getest ( ik heb deze enkel en alleen deze code in mijn .htaccess bestand )

RewriteEngine On
RewriteBase /
RewriteRule ^/(.*)/$ index.php?page=1

en ik krijg nog steeds dezelfde url..
de module staat wel aan bij de provider waar ik host dat heb ik gezien d.m.v. phpinfo()

mis ik iets? of doe ik nu iets fout?
en moet ik nu voor elke link een regel maken nee toch?
Ja, je doet iets fout.

Kijk eens naar mijn bericht.
En tel dan het aantal dollartekens in jouw code.


Je mist er dus één.

FOUT:
RewriteEngine On 
RewriteBase / 
RewriteRule ^/(.*)/$ index.php?page=1


GOED:
RewriteEngine On 
RewriteBase / 
RewriteRule ^/(.*)/$ index.php?page=$1
En je weet dat HTACCESS niet index.php?page=1 ombouwt naar /1/ maar /1/ ombouwt naar index.php?page=1?

Hiermee bedoel ik:
Met deze htaccess:
RewriteEngine On
RewriteBase /
RewriteRule new.html old.html


Is het niet zo dat als je naar site.nl/old.html gaat de url wordt vervangen door site.nl/new.html, maar het is zo dat als je naar site.nl/new.html gaat je de content te zien krijgt van old.html.
[hr]
Verder zou ik altijd adviseren om de Rules wat stricter te maken. Als je wilt dat het alleen cijfers bevat doe je iets als: \d*? en niet .*?
Ook kun je het beste lazy matches gebruiken (dus met ? erachter) anders kom je in de knoei als je meerdere / in een url propt.
Ik heb nog niks kunnen uitproberen maar dank voor jullie reacties, wouter mijn bedoeling is dat de cojfers bijv gewoon seo vriendelijk worden bijv mijndomein.nl/contact zoiets. Het liefst
*bump* ik heb het nog steeds niet voor elkaar gekregen om mijn urls te veranderen van

dit: website/index.php?page=1
naar: website/home

kan iemand me hier nog mee helpen misschien?

bij voorbaat dank!

dit is wat ikk nu gebruik


RewriteEngine on

RewriteRule ^home.html$ index.php?page=1
RewriteRule ^about.html$ index.php?page=2
RewriteRule ^contact.html$ index.php?page=3
RewriteRule ^code.html$ index.php?page=4
RewriteRule ^sitemap.html$ index.php?page=5
Reshadd, nogmaals je begrijpt dat htaccess anders werkt dan je nu denkt?

Hoe htaccess werkt:
Je hebt bijv. deze rule:
RewriteRule ^(.*?)/(.*?)/$ show_post.php?cat=$1&slug=$2

Als je nu naar domein.nl/html/lorem-ipsum gaat dan gaat deze url eerst naar de htaccess. Deze denkt, hé dat is deze rule. Vervolgens laat hij niet domein.nl/html/lorem-ipsum/index.html zien, maar show_post.php?cat=html&slug=lorem-ipsum.

Als je nu naar domein.nl/show_post.php?cat=html&slug=lorem-ipsum gaat gebeurd er niks bijzonders. Het matched geen één htaccess rule en dus laat hij gewoon de pagina zien.

Ik heb het idee dat jij nog steeds denkt dat als je naar domein.nl/show_post.php?cat=html&slug=lorem-ipsum gaat je dan doorgelinkt wordt naar domein.nl/html/lorem-ipsum/, zo werkt het dus niet.

Mocht ik dit verkeerd denken en heb je het al wel door, is htaccess mod_rewrite wel geïnstalleerd op je server? Als je phpinfo() toont op een pagina staat hier dan bij apache > modules wel mod_rewrite tussen? En staan .htaccess wel in de root? Heb je wel een bestand .htaccess (dus zonder bestandsnaam, alleen met extensie)?

Kun je anders een online voorbeeld geven?
ik weet wel hoe het werkt alleen weet ik niet hoe een htaccess in te stellen.. volgens mij staat de module mod_rewrite gewoon aan op mijn server zie hier phpinfo

Ja, ik heb het .htaccess genoemd ( dus niks ervoor )
in de root, is dit op de server de map waarin alle pagina's ook staan? of zelfs daarvoor?

waar wil je precies een online voorbeeld van?

p.s. ik gebruik dit om mijn urls goed te zetten.

Reageren