Htaccess rewrite

  • Hallo,


    Om me URL's wat op te schonen heb ik wat rewrite rules toegevoegd aan me site.
    Die van de pagina's werkt goed, maar ik heb er ook één die moet zowel de variabele van page als de id ophalen, en daar gaat het fout.


    Ik gebruik de volgende rewrite rule;


    Apache Configuration
    RewriteRule ^page/(.*)/add/(.*)/?$ index.php?page=$1&id=$2 [L,QSA]
    RewriteRule ^page/(.*)/?$ index.php?page=$1


    page/downloads/ verwijst gewoon netjes door naar de downloads pagina, maar als ik page/downloads/add/16/ probeer, gaat het helemaal fout.


    De inhoud van de $_GET voor de page wordt "add" en de inhoud van de $_GET voor de id wordt "16/".
    Dit moet dus eigenlijk "downloads" en "16" zijn, geen add en ook geen / achter de 16.


    Weet iemand wat de fout is? ?(

  • Heel raar dat ie dit niet doet want ik heb even gekeken en kon geen fout vinden. Dus heb ik het even geprobeerd en dit was het resultaat:


    .htacces:

    PHP
    RewriteEngine On
    
    
    RewriteRule ^page/(.*)/add/(.*)/?$ index.php?page=$1&id=$2 [L,QSA]
    RewriteRule ^page/(.*)/?$ index.php?page=$1


    index.php:

    PHP
    <?php
        var_dump($_GET);


    Het resultaat als ik naar page/downloads/add/16 ga:

    PHP
    array(2) { ["page"]=> string(9) "downloads" ["id"]=> string(2) "16" }


    Misschien ben je ergens vergeten je script op te slaan, haal je iets niet goed op of heel misschien moet je even je cache legen (wat het probleem hoogst waarschijnlijk niet kan zijn).

  • Ik krijg dit als array;


    Code
    array(6) { ["page"]=> string(3) "add" ["id"]=> string(3) "16/" ["app"]=> string(3) "ccs" ["module"]=> string(5) "pages" ["section"]=> string(5) "pages" ["folder"]=> string(10) "/downloads" }


    Hij ziet de waarde van page als add, heel raar.


  • Ik kom uit op collection.php omdat de waarde van page niet klopt, inhoud daarvan;


    PHP
    <div class="col-md-9">
        <div class="row">              
    
    
           <h4>Collection <?=var_dump($_GET);?></h4>    
           
        </div>
    </div>



    @Ferhat, yep dat werkt gewoon

  • Dan moet je die va dump niet doen.


    Ik doe het bv zo

    PHP
    RewriteRule ^statistieken/(.*)/ statistieken.php?stats=$1 [L]
    RewriteRule ^statistieken/ statistieken.php [L]


    Dus eerst met de variabelen, dan de gewone. Dan moet het sowieso werken.


    Bedoel je dat ik index.php ook een rewrite moet geven? En dan nog 2 andere rewrites, één voor de page en één voor de page en de id?

  • Ik doe het dan zo voor bv mijn berichten:


    PHP
    RewriteRule ^berichten/new/(.*)/(.*)/ message.php?p=new&to=$1&subject=$2 [L]
    RewriteRule ^berichten/read/(.*)/ message.php?p=read&id=$1 [L]
    RewriteRule ^berichten/del/(.*)/ message.php?p=del&id=$1 [L]
    RewriteRule ^berichten/new/(.*)/ message.php?p=new&to=$1 [L]
    RewriteRule ^berichten/(.*)/(.*)/ message.php?p=$1&n=$2 [L]
    RewriteRule ^berichten/(.*)/ message.php?p=$1 [L]
    RewriteRule ^berichten/ message.php?p=inbox [L]
  • Ik heb nu:


    Apache Configuration
    RewriteRule ^page/freescripts/(.*)/ index.php?page=freescripts&id=$1 [L]
    RewriteRule ^page/freescripts/ index.php?page=freescripts [L]


    Maar dit werkt nog steeds niet. Ik kom op collection.php uit omdat hij de waarde van page als de ID ziet.
    Dus als ik naar http://www.site.nl/page/freescripts/16 ga dan is de waarde van de page 16 en de waarde van de ID ook 16.


    Ga ik naar http://www.site.nl/page/freescripts/ dan is de waarde van de page wel gewoon "freescripts" en laad hij dan ook gewoon de juiste pagina.


    Ik snap er echt niets meer van ?(

  • Het probleem is opgelost. Niets hielp dus rade Ferhat mij aan om gewoon met left en right.php te werken i.p.v dat allemaal in de index te gooien. Op een één of andere manier heeft dit geholpen. Bedankt Ferhat!

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!