login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Mod Rewrite Probleem (Opgelost)

Offline Chupskie - 13/05/2007 11:30 (laatste wijziging 13/05/2007 11:37)
Avatar van ChupskieMySQL beginner Hallo allemaal,
Ik was aan het proberen, mijn urls 'vriendelijk' te maken, met mod rewrite. Ik kom er alleen niet meer uit, ik zie niet wat ik fout doe.

Dit is wat ik heb:
.htaccess (staat in de root)
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^test/(.*)/ditdan/(.*)/ index.php?test=$1&ditdan=$2
  4. RewriteRule ^test/(.*)/ index.php?test=$1


test code index.php (test opstelling)
  1. <?php
  2. if(isset($_GET['test']) && $_GET['test'] == "1"){
  3. echo "1 werkt<br>";
  4.  
  5. if(isset($_GET['ditdan']) && $_GET['ditdan'] == "5"){
  6. echo "2 werkt<br>";
  7. }
  8.  
  9. }else{
  10. echo "<br>Geen Mod rewrite<br>";
  11. echo "- <a href=index.php?test=1>Link test 1</a><br>";
  12. echo "- <a href=index.php?test=1&ditdan=5>Link test 2</a><br>";
  13. echo "<br>Wel Mod rewrite <br>";
  14. echo "- <a href=/vriendelijkeurls/index/1/>Link test 1</a><br>";
  15. echo "- <a href=/vriendelijkeurls/index/1/5/>Link test 2</a><br>";
  16. }
  17. ?>


Wat moet het worden:
dit: index.php?test=1&ditdan=5 moet
dit: index/1/5/ of index/test/1/ditdan/5/worden

Wat er fout gaat:
Hij komt niet uit bij "1 werkt" of bij "2 werkt". Hij komt dus niet bij de if.
De link is dus niet goed ofzo?

Ik hoop dat iemand ziet wat ik fout doe.
(Het complete domein is: www.sitenaam.nl/vriendelijkurls/index.php)

Alvast bedankt,

6 antwoorden

Gesponsorde links
Offline CDNC - 13/05/2007 16:29 (laatste wijziging 13/05/2007 16:30)
Avatar van CDNC PHP ver gevorderde als je nou eens goed kijkt zie je de fout direkt:

.htaccess
  1. RewriteRule ^test/(.*)/ditdan/(.*)/ index.php?test=$1&ditdan=$2


URL
  1. /vriendelijkeurls/index/1/5/


zie jij een overeenkomst?

vriendelijkeurls != test
dus ...
Offline Chupskie - 15/05/2007 16:24 (laatste wijziging 15/05/2007 16:29)
Avatar van Chupskie MySQL beginner edit: ik heb hem nu uit de submap gehaald. En nu heb ik deze code:
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^/index/(.*)/(.*)/ vriendelijk.php?test=$1&ditdan=$2 [L]
  4. RewriteRule ^/index/(.*)/ vriendelijk.php?test=$1 [L]


En als ik nu op een link klik, dan gaat hij ook echt naar de index toe, ipv naar vriendelijk.php ??
Offline Thomas - 15/05/2007 16:40
Avatar van Thomas Moderator Is "index" ook een folder in je webroot? Als je "niet-bestaande" folders in je URLs gebruikt (voor modrewriting) die ook echt bestaan, dan kom je in de problemen.
Offline Chupskie - 15/05/2007 16:47 (laatste wijziging 15/05/2007 16:55)
Avatar van Chupskie MySQL beginner Ahh kijk, dit werkt al beter. Ik kom nu uit (volgens mij) op de vriendelijk.php pagina.

Alleen nu werken volgens mij nog steeds met $_GET'ts niet? Kan dat kloppen?

.htaccess
RewriteRule ^(.*)/ vriendelijk.php?test=$1 [L]

vriendelijk.php
<a href=/index/1/>Link test 1</a>
if(isset($_GET['test']) && $_GET['test'] == "1"){

edit: en de link is:
http://www.sitenaam.nl/index/1/

Hier ook nog tips voor??

edit2: als ik die $_GET['test'] echo krijg ik bij de eerste: index.php/1
en bij de 2de get krijg ik: 5
Dus bij de eerste moet nog dat index.php weg, en dan moet het werken?
Offline Thomas - 15/05/2007 16:56 (laatste wijziging 15/05/2007 16:57)
Avatar van Thomas Moderator Je rewriterule is nogal vaag niet?
wat matched ^(.*)/ nu precies?
index/ ?
/index/ ?
index/1/ ?
/index/1/ ?

of dex/ ?
/ ?
1/ ?
/1/ ?

Probeer RewriteRules zo concreet mogelijk te maken door ze te laten beginnen met ^ en te laten eindigen met $, zodat je exacte matches maakt, zo laat je minder ruimte voor eigen interpretatie over.

Offline Chupskie - 15/05/2007 17:03 (laatste wijziging 15/05/2007 17:12)
Avatar van Chupskie MySQL beginner @FangorN, hij werkt nu helemaal, ook de get's. de link is nu gewoon www.sitenaam.nl/1/5/

Wat ik wou proberen is dat je ook kunt zien op welke pagina je zit dus zoiets:
www.sitenaam.nl/index/1/5/
www.sitenaam.nl/forum/1/5/
www.sitenaam.nl/mapje/1/5/

De index, forum, mapje, enz, zijn respectievelijk, index.php, forum.php, mapje.php. Dat was mijn bedoeling.

En dit is wat ik heb:
.htaccess
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^(.*)/(.*)/ vriendelijk.php?test=$1&ditdan=$2 [L]
  4. RewriteRule ^(.*)/ vriendelijk.php?test=$1 [L]


vriendelijk.php
<a href=/1/5/>Link 1</a> <-- dit werkt zoals het nu is.

<a href=/index/1/5/>Link 1</a>
<a href=/forum/1/5/>Link 2</a>
<a href=/mapje/1/5/>Link 3</a> <-- dit zou het moeten worden

Dat was mijn doel, maar dat wil nu nog niet lukken?
edit: want als ik 'test' ($_GET) echo, krijg ik: forum.php/1
en als ik 'ditdan' ($_GET) echo dan krijg ik: 5

Dus dat forum.php en 1 zou gescheiden moeten worden, maar dat werkt niet?

edit2800: het werkt ^^
RewriteRule ^(.*)/(.*)/(.*)/ vriendelijk.php?test=$1&ditdan=$2&testing=$3 [L]
Gewoon nog een: /(.*) toevoegen, dan deelt ie het op in 3 gets 

Bedankt allemaal^^ :p 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.231s