• Beste,


    Ik stoot tegen een probleem.
    Op local host werkt url rewite netjes, maar nu ik een host heb genomen en online wil gaan werkt het NIET


    Apache Configuration
    RewriteEngine On
    
    
    RewriteRule ^register$ index.php?page=register
    RewriteRule ^login$ index.php?page=login
    
    
    RewriteRule ^game/(.*)/(.*)/(.*)$ game.php?page=$1&sub=$2&x=$3
    RewriteRule ^game/(.*)/(.*)$ game.php?page=$1&sub=$2
    RewriteRule ^game/(.*)$ game.php?page=$1


    Login en register werkt netjes de rest onder NIET~!

    Ik sta open voor projecten.
    Ik sta ook tehuur als scripter
    PM voor meer informatie

  • Ik ben geen htaccess expert, maar misschien werkt het wanneer je een 'L flag' aan het einde van elke regel zet. Dit zorgt ervoor dat de server stopt met zoeken naar andere overeenkomsten.
    Dus zoiets als dit:


    Apache Configuration
    RewriteEngine On
    
    
    RewriteRule ^register$ index.php?page=register [L]
    RewriteRule ^login$ index.php?page=login [L]
    
    
    RewriteRule ^game/(.*)/(.*)/(.*)$ game.php?page=$1&sub=$2&x=$3 [L]
    RewriteRule ^game/(.*)/(.*)$ game.php?page=$1&sub=$2 [L]
    RewriteRule ^game/(.*)$ game.php?page=$1 [L]

    Waarom het wel op lokaal niveau werkt en anders niet snap ik niet..

  • Waarom stuur je niet gewoon alles door naar index.php (single point of entry in je applicatie) die dan de REQUEST_URI inspecteert en code inlaadt? Waarom deze brei van RewriteRules?


    Je zegt "het werkt niet". Waar blijkt dit uit? Krijg je foutmeldingen?


    Ook lijken index.php en game.php structureel ongeveer hetzelfde te doen, waarom heb je hier dan toch twee bestanden (twee ingangen in je applicatie) voor gemaakt? :/


    Wat @ThomasBlom zegt lijkt mij in ieder geval verstandig: indien er een match is met het patroon van een RewriteRule, voer deze dan uit en stop verdere matching.

  • Nee het staat aan anders deed login en register het ook niet maar die det het wel

    Ik sta open voor projecten.
    Ik sta ook tehuur als scripter
    PM voor meer informatie

  • Heel raar dit probleem.
    Als k de script game.php verander in ingame.php en in htaccess ingame.php?page=$1 en de nieuwe url laat dus /game/pagina werkt het wel :s


    Maar se subs werken niet nu hoe kan dit
    Host transIP

    Ik sta open voor projecten.
    Ik sta ook tehuur als scripter
    PM voor meer informatie

  • Staat alles in de root van je webdirectory? Misschien is het toch handig om een expliciete RewriteBase toe te voegen.


    Misschien gaat er iets mis met URL encoding/decoding, want ⊂ is een HTML entity. Mogelijk probeert het systeem iets foutief te repareren.


    Misschien zijn er andere, en niet zichtbare (of die van jezelf, in een hoger gelegen directory), rewriterules actief?


    Heb je al eens $_GET gedumpt in index.php, game.php et cetera?


    Zolang je niet weet wat de oorzaak van een probleem is is het in het algemeen ook verstandiger om hier geen aannames over te doen.

  • Daarom is het ook aannemelijk dat er (nog) iets anders speelt. De RewriteRules doen volgens mij gewoon hun ding. Zoveel geeft de topicstarter ook aan: lokaal werkt dit wel, maar online niet. Er worden verder ook geen details over de host gegeven, maar daar zou ik eens wat nader naar gaan kijken...


    Nergens geeft topicstarter ook een voorbeeld van hoe deze de pagina's aanroept. Wanneer je URL een trailing slash bevat (/game/, /game/een/, /game/een/twee/, /game/een/twee/drie/) dan krijg je mogelijk niet het gewenste resultaat.


    Los hiervan, meerdere ingangen in je applicatie creëren is doorgaans niet zo'n verstandig plan. Niet vanuit security, en niet vanuit efficiency (met meerdere ingangen is er bijna onvermijdelijke overhead doordat je dezelfde dingen dubbel, driedubbel, of meerdere keren uitvoert).


    Dus los vanuit het feit dat de RewriteRules gewoon zouden moeten werken (en het is nog steeds interessant om uit te zoeken waarom dit niet werkt) zou je er misschien beter aan doen om je ontwerpstrategie aan te passen.

Participate now!

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