Mijn vraag
Een hele stomme, n00b, beginnersvraag: afhankelijk van de URL, wil ik gewoon dat steeds dezelfde PHP file wordt aangeroepen, maar dan met als parameter alles wat erachter komt. Ik wil dat bij voorkeur niet doen met bijv. www.url.com/index.php?parameter, maar meer zoiets in de vorm: www.url.com/klant1
klant1 is dan de parameter.
Relevante software en hardware die ik gebruik
Apache
PHP
Wat ik al gevonden of geprobeerd heb
Met URL mapping in HTACCESS files kun je heel eenvoudig afhankelijk van de URL een andere URL aanroepen, maar ik wil dus dat maar 1 PHP file wordt aangeroepen, dus daar red ik het niet mee.
Nu vind ik in deze link https://stackoverflow.com...395650/url-mapping-in-php hetvolgende wat op mijn situatie lijkt:
Of doe ik te moeilijk en is er een simpelere methode?
Een hele stomme, n00b, beginnersvraag: afhankelijk van de URL, wil ik gewoon dat steeds dezelfde PHP file wordt aangeroepen, maar dan met als parameter alles wat erachter komt. Ik wil dat bij voorkeur niet doen met bijv. www.url.com/index.php?parameter, maar meer zoiets in de vorm: www.url.com/klant1
klant1 is dan de parameter.
Relevante software en hardware die ik gebruik
Apache
PHP
Wat ik al gevonden of geprobeerd heb
Met URL mapping in HTACCESS files kun je heel eenvoudig afhankelijk van de URL een andere URL aanroepen, maar ik wil dus dat maar 1 PHP file wordt aangeroepen, dus daar red ik het niet mee.
Nu vind ik in deze link https://stackoverflow.com...395650/url-mapping-in-php hetvolgende wat op mijn situatie lijkt:
Nou is mijn kennis van zowel Apache als PHP te beperkt, maar laten we met de eerste beginnen: wanneer de FileMatch in de HTACCESS staat, hoe weet Apache dan welk PHP bestand uitgevoerd moet worden?Other than using mod_rewrite, as already reported you can do a little of magic with a simple trick.
Put into the .htaccess a directive like this one
code:
1 2 3 <FilesMatch "^servlet$"> ForceType application/x-httpd-php </FilesMatch>
substitute ^servlet$ with a regular expression of your choice (it will be the name of your dispatcher)
The file servlet should be similar to this
PHP:
1 2 3 4 5 6 7 8 9 10 11 12 <?php $data = explode('/',$HTTP_SERVER_VARS['PATH_INFO']); // $data[0] always empty $fileToInclude = $data[1].'.php'; if (file_exists($data[1]) { $params=array_slice($data,2); // you can do here something more sophisticated // for example sanitize parameters or assemble // an hash include ($fileToInclude); //Think to this file as a servlet } else { // issue a 404 error, maybe one of the 500 series } ?>
The url can have the form: http://yoursite/servlet/reports/sales/2009 you can also reach the form http://yoursite/reports/sales/2009 plaiyng a little with the .htacces and the dispatcher.
This method has the advantage that mod_rewrite is not required as FilesMatch (1.3+) and ForceType (2.0+) are in the apache core
See for reference
http://httpd.apache.org/docs/2.2/mod/core.html#forcetype
http://httpd.apache.org/docs/2.2/mod/core.html#filesmatch
http://www.devarticles.co...pe-For-Nicer-Page-URLs/1/
Of doe ik te moeilijk en is er een simpelere methode?