Ik probeer met een .htaccess bestand urls te herschrijven. Ik heb al verschillende instellingen geprobeerd die geen van allen het gewenste resultaat geven. De server staat bij een hostbedrijf dus daar heb ik niet zoveel invloed op.
Het bestand .htaccess en test.php staan beiden in de root.
Het test.php bestand:
Test 1: domein.nl/123
$_SERVER[REDIRECT_QUERY_STRING] => a=123&b=
$_SERVER[QUERY_STRING] => a=test.php&b=
Test 2: domein.nl/123/
Met afsluit slash:
$_SERVER[REDIRECT_QUERY_STRING] => a=123&b=
$_SERVER[QUERY_STRING] => a=123&b=
Test 3: domein.nl/123/
Met optionele afsluit slash:
$_SERVER[REDIRECT_QUERY_STRING] => a=123&b=
$_SERVER[QUERY_STRING] => a=test.php&b=
Test 4: domein.nl/123
Test 5: domein.nl/123,456
$_SERVER[REDIRECT_QUERY_STRING] => a=123&b=456
$_SERVER[QUERY_STRING] => a=123&b=456
Test 6: domein.nl/123
$_SERVER[REDIRECT_QUERY_STRING] => a=123&b=
$_SERVER[QUERY_STRING] => a=test.php&b=
Test 1 geeft test.php in QUERY_STRING mee terwijl de REDIRECT_QUERY_STRING correct is?!
Test 2 is correct maar vereist een slash aan het eind.
Test 3 is gelijk aan test 1 qua uitvoer.
Test 4 geeft een 404 fout.
Test 5 is correct.
Test 6 is gelijk aan test 1 qua uitvoer.
Heeft iemand een idee waar het aan ligt?
Het bestand .htaccess en test.php staan beiden in de root.
Het test.php bestand:
PHP:
1
2
3
| print_r( $_GET ); echo '<br/>'; print_r( $_SERVER ); |
Test 1: domein.nl/123
code:
$_GET: [a] => test.php [b] =>1
2
| RewriteEngine on RewriteRule ^(.+) test.php?a=$1&b=$2 |
$_SERVER[REDIRECT_QUERY_STRING] => a=123&b=
$_SERVER[QUERY_STRING] => a=test.php&b=
Test 2: domein.nl/123/
Met afsluit slash:
code:
$_GET: [a] => 123 [b] =>1
2
| RewriteEngine on RewriteRule ^(.+)/ test.php?a=$1&b=$2 |
$_SERVER[REDIRECT_QUERY_STRING] => a=123&b=
$_SERVER[QUERY_STRING] => a=123&b=
Test 3: domein.nl/123/
Met optionele afsluit slash:
code:
$_GET: [a] => test.php [b] =>1
2
| RewriteEngine on RewriteRule ^(.+)/? test.php?a=$1&b=$2 |
$_SERVER[REDIRECT_QUERY_STRING] => a=123&b=
$_SERVER[QUERY_STRING] => a=test.php&b=
Test 4: domein.nl/123
code:
Geeft 404 fout.1
2
| RewriteEngine on RewriteRule ^/(.+)$ test.php?a=$1&b=$2 |
Test 5: domein.nl/123,456
code:
$_GET: [a] => 123 [b] => 4561
2
| RewriteEngine on RewriteRule ^(.+),(.+) test.php?a=$1&b=$2 |
$_SERVER[REDIRECT_QUERY_STRING] => a=123&b=456
$_SERVER[QUERY_STRING] => a=123&b=456
Test 6: domein.nl/123
code:
$_GET: [a] => test.php [b] =>1
2
| RewriteEngine on RewriteRule ^(.+),?(.+)? test.php?a=$1&b=$2 |
$_SERVER[REDIRECT_QUERY_STRING] => a=123&b=
$_SERVER[QUERY_STRING] => a=test.php&b=
Test 1 geeft test.php in QUERY_STRING mee terwijl de REDIRECT_QUERY_STRING correct is?!
Test 2 is correct maar vereist een slash aan het eind.
Test 3 is gelijk aan test 1 qua uitvoer.
Test 4 geeft een 404 fout.
Test 5 is correct.
Test 6 is gelijk aan test 1 qua uitvoer.
Heeft iemand een idee waar het aan ligt?
Developer Accused Of Unreadable Code Refuses To Comment