Cas 2 : Utilisation de la directive de compilation cgi.force_redirect

La directive de configuration cgi.force_redirect évite qu'un appel direct à un script PHP avec une URL comme http://my.host/cgi-bin/php/secretdir/script.php ne soit possible. A la place, PHP analysera le fichier uniquement s'il y a eu redirection. Avec PHP antérieur à la version 4.2.0, vous deviez utiliser l'option de compilation --enable-force-cgi-redirect pour faire la même chose.

Habituellement, la redirection est effectuée grâce aux directives suivantes dans la configuration du serveur Apache :

Action php-script /cgi-bin/php
AddHandler php-script .php

Cette option a uniquement été testée avec Apache, et compte sur Apache pour affecter la variable d'environnement non-standard REDIRECT_STATUS pour les requêtes redirigées. Dans le cas où votre serveur web ne supporte aucune manière d'indiquer si la requête a été redirigée ou non, vous ne pourrez pas utiliser cette option de compilation. Vous devrez alors utiliser une des autres méthodes d'exploitation de la version binaire CGI de PHP, comme exposé ci-dessous.

add a note add a note

User Contributed Notes 2 notes

up
2
harvey dot eneman at oracle dot com
4 years ago
It appears that as of 5.3.0, --enable-force-cgi-redirect is not a valid configure option.  A quick review of the 5.3.0 code indicates that it the logic previously enabled by specifying the --enable-force-cgi-redirect configure option is being built into php by default.
up
1
celtic at sairyx dot org
7 years ago
Note that force-redirect doesn't work with IIS at all; it'll tell you to go away, as IIS doesn't supply the right variables to PHP.

php.ini tells you to turn it off, so make sure you do.
To Top