我想configuration一个本地的Apache服务器来提供不同的PHP版本的PHP文件。 在我的文档根目录中,我有phpinfo.php ,现在如果我去http://localhost/phpinfo.php4 ,我想看看用php4处理的phpinfo.php文件,如果我去http://localhost/phpinfo.php5我想看到用php5处理相同的文件。
注意:php4和5都已经并行安装,我没有任何问题configurationapache来处理在正确的php版本的文件系统上具有.php4或.php5扩展名的文件 。 我想要的是为Apache做以下几点:
.php5 .php ,则使用application/x-httpd-php5处理程序为文件系统提供.php扩展名的文件。 .php4 .php ,则使用application/x-httpd-php4处理程序在文件系统上提供.php扩展名的相同文件。 经过一些试验和错误,我find了答案。 魔法咒语是
RewriteEngine on RewriteRule ^(.*)\.php5$ $1.php [H=application/x-httpd-php,PT] RewriteRule ^(.*)\.php4$ $1.php [H=php4,PT]
其中application/x-httpd-php是mod_php5注册的默认处理程序, php4是一个调用php4的自定义cgi处理程序。 我最困惑的部分是PT (passthrough)标志,这是cgi处理程序工作所必需的。 PT导致其他模块进行URL重写也做他们的工作,而mod_cgi就是这样一个模块。