login  Naam:   Wachtwoord: 
Registreer je!
 Forum

rewrite-rules voorbeeld

Offline Emonk - 13/05/2012 16:07
Avatar van EmonkLid Hallo allemaal,

Voor een nieuw project wil ik in .htaccess rewrite-rules toepassen, maar dit is nieuw voor mij. Ik heb geen idee hoe dat werkt.

Het moet als volgt werken:

/topic/ verwijst naar articles.php
/topic/categorie1/ verwijst naar articles.php?c=categorie1
/topic/categorie1/categorie2 verwijst naar articles.php?c=categorie2
/topic/artikel verwijst naar viewarticle.php?name=artikel
/topic/categorie1/artikel verwijst naar viewarticle.php?name=artikel
/topic/categorie1/categorie2/artikel verwijst naar viewarticle.php?name=artikel

Kunnen jullie mij op weg helpen? Zoals gezegd, ik heb 0 ervaring met rewrite-rules. Alvast bedankt! 

19 antwoorden

Gesponsorde links
Offline icemar - 13/05/2012 20:04
Avatar van icemar Lid Ik denk dat je dit niet op deze manier moet oplossen aangezien je nu dubbel dingen doet.

zal ze eerst samenvoegen

/topic/ verwijst naar articles.php

/topic/categorie1/ verwijst naar articles.php?c=categorie1
/topic/categorie2/ verwijst naar articles.php?c=categorie2

/topic/artikel verwijst naar viewarticle.php?name=artikel

Als je dit onderstaande wil moet je dit anders doen namelijk anders kom je niet aan de categorie.
/topic/categorie1/artikel verwijst naar viewarticle.php?c=categorie1&name=artikel
/topic/categorie2/artikel verwijst naar viewarticle.php?c=categorie2&name=artikel

Als je dit zo wil kan ik wel de rewirte rules maken voor je.
In afwachting op je reactie.
Offline Emonk - 17/05/2012 11:42
Avatar van Emonk Lid Ik snap niet helemaal wat je bedoelt, maar volgens mij is dat ook prima. Als je een voorbeeld wil schrijven zou dat heel fijn zijn! 
Offline icemar - 17/05/2012 12:05
Avatar van icemar Lid Als goed is zou dit het moeten zijn

  1. RewriteEngine On
  2. RewriteRule topic/categorie/([0-9]+)/$ articles.php?c=$1
  3. RewriteRule topic/categorie/([0-9]+)/([a-zA-Z]+)/$ articles.php?c=$1&name=$2
Offline Emonk - 17/05/2012 12:15
Avatar van Emonk Lid Dankjewel, maar dit is toch niet helemaal wat ik bedoel - sorry voor de onduidelijkheid.
categorie1 en categorie2 zijn namen die later ook nog door de administrator zijn aan te passen, die horen dus niet in het .htaccess bestand..
Offline icemar - 17/05/2012 13:06
Avatar van icemar Lid Dan moeten ze zo worden

  1. RewriteEngine On
  2. RewriteRule topic/([0-9]+)/$ articles.php?c=$1
  3. RewriteRule topic/([a-zA-Z]+)/([a-zA-Z]+)/$ articles.php?c=$1&name=$2
Offline Emonk - 17/05/2012 13:49 (laatste wijziging 17/05/2012 13:53)
Avatar van Emonk Lid Om je code uit te proberen heb ik deze twee bestanden in één directory gezet:

.htaccess
  1. RewriteEngine On
  2. RewriteBase /var/www/tests/rewriterules/
  3. RewriteRule topic/([0-9]+)/$ /var/www/tests/rewriterules/index.php?c=$1
  4. RewriteRule topic/([a-zA-Z]+)/([a-zA-Z]+)/$ /var/www/tests/rewriterules/index.php?c=$1&name=$2


index.php
  1. <pre>
  2. <?php
  3. var_dump($_GET);
  4. ?>
  5. </pre>


Echter, op de url /tests/rewriterules/topic/categorie/artikel blijf ik een 404 error krijgen.
Zie http://home.camilstaps.nl/tests/rewriterules...
Offline icemar - 17/05/2012 15:02
Avatar van icemar Lid Je moet de rewrite rules in een htaccess zetten in de root van je map
Je moet daar niets aan veranderen.
Offline Emonk - 17/05/2012 15:10
Avatar van Emonk Lid Het probleem blijft.. heb je het zelf uitgetest? Want ik test op een server waar rewrites eerst wel werkten..
Offline Maarten - 18/05/2012 14:26
Avatar van Maarten Erelid /var/www/tests/rewriterules/index.php is geen publiek benaderbaar bestand.


Als /var/www/www je root is, moet je dus verwijzen naar test/rewriterules/index.php
Offline Emonk - 18/05/2012 18:55
Avatar van Emonk Lid Bedankt voor je reactie, maar het probleem blijft bestaan...
Offline icemar - 18/05/2012 19:49
Avatar van icemar Lid Wat probeer je daar in aan te roepen ?
Offline Emonk - 18/05/2012 20:23
Avatar van Emonk Lid localhost/tests/rewriterules/1
en localhost/tests/rewriterules/alfa/alfa
Offline icemar - 18/05/2012 23:23
Avatar van icemar Lid domeinnaam.nl/articles.php?c=categorie2
moet je testen wel de dingen testen waarvoor een rewrite rule is anders werk het zeker niet
Offline Emonk - 19/05/2012 09:50 (laatste wijziging 19/05/2012 10:07)
Avatar van Emonk Lid Volgens mij praten we langs elkaar heen. Mijn .htaccess bestand:

  1. RewriteEngine On
  2. RewriteRule tests/rewriterules/topic/([0-9]+)/$ tests/rewriterules/index.php?c=$1 [R]
  3. RewriteRule tests/rewriterules/topic/([a-zA-Z]+)/([a-zA-Z]+)/$ tests/rewriterules/index.php?c=$1&name=$2 [R]


In de adresbalk typ ik: localhost/tests/rewriterules/topic/1 en localhost/tests/rewriterules/topic/alfa/alfa. Beide zouden nu moeten verwijzen naar index.php met get-variabelen, [R] zou er voor moeten zorgen dat het adres in de adresbalk ook veranderd. Maar hij geeft een 404...
het .htaccess-bestand wordt wel gebruikt en alle opties staan aan (AllowOverride All voor die map), dat weet ik omdat andere functies wel werken...
Offline icemar - 20/05/2012 09:01
Avatar van icemar Lid Werk tests/rewriterules/index.php?c=catname? wel of ook niet ?
Moeten kijken waar het fout gaat aangezien ik niet de rest van je code heb kan ik niet lokaal testen.
Offline Emonk - 20/05/2012 11:26 (laatste wijziging 20/05/2012 11:27)
Avatar van Emonk Lid Ja, dat werkt wel.

Dit zijn de twee bestanden, /var/www is root.

/var/www/tests/rewriterules/index.php
  1. <pre>
  2.  
  3. <?php
  4. var_dump($_GET);
  5. ?>
  6.  
  7. </pre>


/var/www/.htaccess
  1. order allow,deny
  2. deny from 195.191.54.218
  3. deny from 68.169.86.220
  4. deny from 123.195.230.240
  5. deny from 180.4.177.206
  6. deny from 24.147.175.78
  7. allow from all
  8.  
  9. DirectoryIndex index.php
  10.  
  11. RewriteEngine On
  12. RewriteRule tests/rewriterules/topic/([0-9]+)/$ tests/rewriterules/index.php?c=$1 [R]
  13. RewriteRule tests/rewriterules/topic/([a-zA-Z]+)/([a-zA-Z]+)/$ tests/rewriterules/index.php?c=$1&name=$2 [R]


De twee andere delen uit .htaccess (directoryindex en order allow,deny) werken wél.
In /var/www/tests en /var/www/tests/rewriterules staan geen .htaccess-bestanden.
Offline icemar - 20/05/2012 12:21
Avatar van icemar Lid Werk deze wel ?

localhost/tests/rewriterules/topic/alfa/alfa

want topic staat er nog tussen in de rules
Offline Emonk - 20/05/2012 12:22
Avatar van Emonk Lid Nope, not found. Werkt ie bij jou wel dan? Want dan is er iets mis met mn configuratie..
Offline icemar - 20/05/2012 12:36
Avatar van icemar Lid Zal er vanavond verder naar kijken waar het mis gaat moet nu helaas ff weg.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.229s