Fichier PHP unique que je dois exécuter en tant que CGI

J’ai un programme hérité que je dois exécuter avec l’extension de .cgi (search.cgi), mais j’ai réécrit ce code en utilisant PHP.

Comment puis-je dire à Apache de référencer search.cgi mais de le faire exécuter search.php?

Utilisez le mod de réécriture d’urache d’apache. Quelque chose comme

RewriteEngine on RewriteRule ^/search.cgi$ /search.php [QSA] 

Vous pouvez changer search.cgi par ixsearch.cgi Ou plus général

 RewriteEngine on RewriteRule ^/([a-z0-9_\-]+)\.cgi$ /$1.php [NC, QSA] 

Cela réécrira toute URL yourdomain.com/{some_scriptname}.cgi dans votredomaine.com/ descripteur_de_fichiersname désormais}.php (et réécrivant le paramètre request GET grâce à la clause QSA), le nom du script peut contenir n’importe quelle lettre entre a et z ou numer ou char comme – ou _ (ex jus de tomate). De plus, il est insensible à la casse (grâce à la clause NC)

Utilisez mod_rewrite pour réécrire les requêtes de search.cgi à search.php.

Il suffit de l’écrire en tant que CGI standard, comme vous l’avez fait, mais de l’exécuter à l’aide de la version de ligne de commande de PHP afin qu’il fonctionne comme un CGI standard.