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
Minder rewrite-rules, betere controle over je URL's.
Oke, Heb je toevallig een voorbeeldje liggen? Met landingspagina want bij mij werkt het niet

[size=xsmall]Toevoeging op 04/01/2017 20:09:08:[/size]

Dan verandert link wel, maar verandert content niet
Je moet wel je URL uitlezen op je index.php.

Ikzelf gebruik deze:

<?php
// URL splitting
$path = substr($_SERVER['REQUEST_URI'], strlen(dirname($_SERVER['SCRIPT_NAME'])));
$param = explode('/', trim($path, '/'));

// 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);
}
?>

In de array van $param staan alle waardes die tussen de slashes staan.
Hoe doe ik dat?
Zie edit ^
- Ariën - op 04/01/2017 20:12:43

Je moet wel je URL uitlezen op je index.php.

Ikzelf gebruik deze:
<snip>


En alleen als de HTTP methode is GET - andere soorten HTTP methoden

N.B. - hedendagen gebruiken ontwikkelaars AJAX (verbeterde UX)
AJAX een middel, en geen doel. Ik zie helaas toch vaak dat AJAX onnodig gebruikt wordt terwijl het prima anders kan. Ook een pagina-systeem met een 'single-point-entry' kan prima zonder AJAX worden gebruikt.

Ikzelf gebruik AJAX alleen als ik a-synchroon data wil ophalen zonder dat je page-refreshes wilt hebben.
@Ariën mogelijk is het gebruik van parse_url() makkelijker dan wat je hierboven doet.
@Thomas: Zou inderdaad geen slecht idee zijn, deze code zit al een tijdje in een van mijn CMS'en.
@aar

Deze al eens geprobeerd?

<?php

echo $_SERVER['QUERY_STRING'];

?>

Reageren