Standaard beschikt de webserver IIS niet over de server variabele REQUEST_URI. De informatie die deze server variabele bevat is vaak nodig voor het herschrijven van mooie, zoekmachine vriendelijkeURLs. Bijvoorbeeld WordPress Permalinks.
Helicon’s ISAPI_Rewrite 2 gaf de mogelijkheid hier in scripts gebruik van te maken met behulp van de server variabele HTTP_X_REWRITE_URL. Deze bevat dezelfde informatie als anders REQUEST_URI zou hebben. Namelijk de volledigeURIvan een request. In scripts is dit aan elkaar te koppelen met de code:
1
2
3
4
| <?php
if (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
?> |
zodat scripts niet verder aangepast hoefden te worden; geef REQUEST_URI één keer de waarde van HTTP_X_REWRITE_URL, zodat het niet tientallen keren gewijzigd hoeft te worden in verschillende stukken code.
Sinds Microsoft eenISAPIextensieFastCGIbeschikbaar heeft gemaakt, beschikt IIS ook standaard over de echte REQUEST_URI server variabele. Bovenstaande code wijziging is hierdoor niet meer mogelijk. In scripts, bijvoorbeeld PHP, kan nu standaard
gebruikt worden.
Op de VEVIDA webservers draaien ISAPI_Rewrite versie 2 en 3 naast elkaar. Hierdoor is gebleken dat, in sommige gevallen, dit een conflict geeft. Namelijk:
- als de code gebruik maakt van HTTP_X_REWRITE_URL;
- met het httpd.ini bestand van ISAPI_Rewrite versie 2 ;
Het advies (de oplossing) is om:
- de codewijziging, zoals hierboven beschreven, ongedaan te maken. Hierdoor wordt er gebruik gemaakt van de beschikbare REQUEST_URI;
- het httpd.ini bestand om te zetten naar het .htaccess van ISAPI_Rewrite versie 3;
U vindt verschillende posts met ISAPI_Rewrite 3 voorbeelden, om uw eigen httpd.ini bestand om te kunnen zetten.
Tags: .htaccess, ISAPI_Rewrite