当我升级到 apache 2.2 时,这个
AddType application/x-httpd-php .php5
AddType application/x-httpd-php .php42
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtm
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php .asp
...对我来说不起作用,所以我做了这个
<FilesMatch "\.(php*|phtm|phtml|asp|aspx)$">
SetHandler application/x-httpd-php
</FilesMatch>
Apache 2.2 的另一个有趣之处是以下内容。
假设我们将 PHP 安装为模块。但对于某些目录,我们需要将 PHP 用作 CGI(可能是由于自定义配置)。这可以通过以下方式实现
<FilesMatch "\.(php*|phtm|phtml|asp|aspx)$">
SetHandler none
</FilesMatch>
AddType application/x-httpd-php-custom .php
Action application/x-httpd-php-custom /cgi-bin/php-huge
请注意,类型必须不同于 "application/x-httpd-php",并且还需要停用某些扩展上的处理程序。您可以进行混合配置
<FilesMatch "\.(php)$">
SetHandler none
</FilesMatch>
AddType application/x-httpd-php-custom .php
Action application/x-httpd-php-custom /cgi-bin/php-huge
在这种情况下,像 *.php5 这样的文件将通过模块解析,但 *.php 将转到 php-huge 可执行文件。