Que apache elija una versión de php basada en la extensión en la url, pero con un único file en el sistema de files

Quiero configurar un server apache local para que sirva files php con diferentes versiones php. En mi raíz de documento tengo phpinfo.php , ahora si voy a http://localhost/phpinfo.php4 , quiero ver el file phpinfo.php procesado con php4, si voy a http://localhost/phpinfo.php5 Quiero ver el mismo file procesado con php5.

Nota: tanto php 4 y 5 ya están instalados lado a lado, no tengo ningún problema para configurar apache para tratar los files que tienen una extensión. .php4 o .php5 en el sistema de files con la versión correcta de php. Lo que quiero es que apache haga lo siguiente:

  • Si el url-path termina en .php5 , sirva el file que tiene una extensión .php en el sistema de files usando el controller application/x-httpd-php5 .
  • Si el url-path termina en .php4 , sirva el mismo file con la extensión .php en el sistema de files usando el controller application/x-httpd-php4 .

Después de un poco de ensayo y error me di count. Los encantamientos mágicos son

 RewriteEngine on RewriteRule ^(.*)\.php5$ $1.php [H=application/x-httpd-php,PT] RewriteRule ^(.*)\.php4$ $1.php [H=php4,PT] 

donde application/x-httpd-php es el manejador pnetworkingeterminado que mod_php5 registra, y php4 es un manejador cgi personalizado que llama a php4. La parte que más me costó averiguar es la bandera PT (passthrough), que es necesaria para que los manejadores cgi funcionen. PT hace que otros modules que hacen la reescritura de url también hagan su trabajo, y mod_cgi es tal module.