login  Naam:   Wachtwoord: 
Registreer je!
 Forum

modrewrite

Offline SimonDW - 07/01/2014 21:40 (laatste wijziging 07/01/2014 21:42)
Avatar van SimonDWNieuw lid Ik geraak er via modrewrite niet uit...

Mijn URL's zouden er een beetje netter mogen uitzien.

Momenteel is dit in de zin van
  1. http://www.website.be/index.php?pagina=inhoud&title=Nieuwsoverzicht


Had graag gezien dat dit zou zijn
http://www.website.be/Nieuwsoverzicht

Hier op het forum zitten nakijken, diverse andere pagina's bezocht maar het lukt niet om iets werkend te krijgen.

Krijg altijd een error 500
[code=php]

5 antwoorden

Gesponsorde links
Offline vinTage - 07/01/2014 22:30
Avatar van vinTage Nieuw lid Geen php code te zien, maar soit, je vraag heeft weinig met php te maken afaik.
Je htaccess rule is sowieso niet compleet, en zover ik hem begrijp ook niet logisch opgebouwd..Wat gebeurd er met pagina=inhoud bijvoorbeeld?

Maar als je start met een lege htaccess, dan zou je het volgende kunnen doen:

  1. RewriteEngine On
  2. RewriteRule ^([a-zA-Z0-9_-]+)/?$ /index.php?pagina=$1


Als je dan naar jesite.bla/abc surft, is /abc op te vragen met php dmv $_GET['pagina']
Offline Thomas - 08/01/2014 00:01
Avatar van Thomas Moderator Het oorspronkelijke bericht is niet meer volledig. Is je probleem opgelost?
mod_rewrite is onderdeel van Apache, ik neem aan dat je je website op een Apache webserver hebt staan?

En inderdaad wat vinTage zegt, begin bij wijze van test tijdelijk met een schone lei en kijk of je iets werkends kunt krijgen.

Kijk ook met phpinfo() of mod_rewrite deel uitmaakt van de geladen modules anders werkt het sowieso niet.

En last but not least, je hebt niet per se mod_rewrite nodig voor searchengine safe / friendly URLs - het kan ook op een andere manier, zoals hier kort besproken wordt. Je hebt daar niet eens Apache voor nodig, enkel een mechaniek om een custom 404 pagina in te stellen. Ik wist al dat dit kon, en heb dit ook in het framework wat ik aan het bouwen ben succesvol toegepast. Dit framework draait op een experimentele webserver (=geen Apache), op mijn laptop onder WAMP, op een linux webserver met Apache en op een Windows NT server (=geen Apache). Het lijkt mij ook stukken fijner om niet van een webserver/de beschikbaarheid van een module afhankelijk te zijn voor de correcte werking van je website?

Anyway, herstel het oorspronkelijke topic of plaats een nieuwe reactie, het bericht bevat in zijn huidige vorm te weinig informatie om je te hulp te kunnen schieten.
Offline SimonDW - 08/01/2014 10:20
Avatar van SimonDW Nieuw lid Er is inderdaad een stukje verloren gegaan :-)

Ik gebruik dus volgende code in mijn htaccess bestand:
  1. RewriteEngine On
  2. # herschrijven
  3. RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ /index.php?pagina=$1&title=$2
  4. RewriteRule ^([a-zA-Z0-9_-]+)/?$ /index.php?pagina=$1


Ik zou graag bekomen dat enkel "title" zichtbaar wordt in het URL
Offline Thomas - 08/01/2014 14:31
Avatar van Thomas Moderator Wat ik zo uit mijn hoofd weet van mod_rewrite is het volgende: als je wilt dat mod_rewrite ophoudt met het herschrijven van URL's op het moment dat 'ie een match heeft (de reguliere expressie in het eerste deel van je RewriteRule matcht), moet je achteraan de RewriteRule een L-flag opnemen (tussen rechte haken). Je moet er dan uiteraard ook voor zorgen dat je RewriteRules in de goede volgorde staan (van méést specifiek naar minst specifiek), want mod_rewrite stopt dan na de eerste match.

Zoiets dus:
  1. RewriteEngine On
  2. # herschrijven
  3. RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ /index.php?pagina=$1&title=$2 [L]
  4. RewriteRule ^([a-zA-Z0-9_-]+)/?$ /index.php?pagina=$1 [L]


Afhankelijk van waar je .htaccess staat en je index.php moet je mogelijk ook nog een RewriteBase instellen, maar tenzij je RewriteRules (nu) meteen werken hoeft dat niet.
Offline vinTage - 08/01/2014 15:31
Avatar van vinTage Nieuw lid
SimonDW schreef:
Ik zou graag bekomen dat enkel "title" zichtbaar wordt in het URL

Dat doe je niet dmv htaccess in mijn ogen, maar gewoon met de link naar desbetreffende pagina.

En als je op zo'n manier wilt werken met een database die iets uit de url ophaalt, heb je dus alleen de title als referentie (en moet dus elk bericht in je db een unieke title hebben)
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.196s