Houdie!

Hoe kan ik met htaccess alle tekens redericten de volgende code:

RewriteRule ^paneel/profiel/([^/.]+)/?$ paneel/pages/profiel.php?gebruikersnaam=$1 [NC,L]

([^/.]+) pakt ze bijna allemaal, maar een . niet, verder weet niet welke maar die . is juist belangrijk bij deze rederict ;P

[size=xsmall]Toevoeging op 04/01/2017 19:12:51:[/size]

Maar als de punt aan het einde staat, pakt die hem wel
Dat is voor $_GET parameters, en die gebruik ik zo goed als bijna niet omdat ik alles al uitlees uit de REQUEST_URI.
- Ariën - op 05/01/2017 13:47:43

Dat is voor $_GET parameters, en die gebruik ik zo goed als bijna niet omdat ik alles al uitlees uit de REQUEST_URI.

Huh?

Je hebt er in jouw eigen voorbeeld een heel stukje code voor geschreven :-s
Ik snap dus niet wat je precies bedoelt ...
Mijn script ging over het uitlezen van de REQUEST_URI (/script.php/blala/lala/lala/laa/laaa?dit=ja&dat=nee) terwijl jij met QUERY_STRING dit ophaalt: dit=ja&dat=nee.

Wel is er een hoop code bij geschreven om de QUERY_STRING dus te strippen uit de $param array. Dit was om te voorkomen dat een QUERY_STRING op de index (site.nl/?debug=1) werd gezien als een aparte actie die uiteraard niet zou bestaan volgens het 'single-point-entry' systeem die ik gebruik.

Maar met parse_url() kan het mogelijk vast een stuk beter en effiënter.
>> terwijl jij met QUERY_STRING dit ophaalt: dit=ja&dat=nee.

Hmm, oké ... ik dacht dat jij hetzelfde deed via:

<?php

// strip querystring from array
$elem = array_pop($param);
$pos = strpos($elem,'?');
if(!$pos){
//array seems good ? element can't be found en we pull'em back
$param[] = $elem;
}else if($pos > 0){
//there's something for the question mark. Put off the first piece.
$param[] = substr($elem,0,$pos);
}

?>
Daar haal ik die QUERY_STRING dus mee weg, vanwege bovenstaande reden.
Zoek je dan niet gewoon deze?

$_SERVER['SCRIPT_URL']
PATH_INFO bedoel je? Want de SCRIPT-URL directive ken ik niet.
Nee SCRIPT_URL bedoel ik. Heb je 'm geprobeerd?
Die directive kent PHP hier niet op mijn test server? Ik lees dat ModRewrite wel aan moet staan, maar ook dat is wel het geval.
Hmmm, oké ... dan heb je misschien een wat oudere server :-s

Reageren