我有 Apache 2.0、PHP 5.2.4,以及 httpd.conf 中的以下指令:
AddType application/x-httpd-php-source .php .php3 .php4 .php5 .php6
AddType
指令用于将给定的文件扩展名映射到指定的内容类型。这是此指令的唯一含义。但是为什么此方法会关闭分配 .php 扩展名的 PHP 处理程序,并且我可以在浏览器中查看脚本的源代码?
另一个:
AddType application/x-httpd-php5 .php
为什么此方法会启用 PHP 处理程序?这只会将标头发Content-Type: application/x-httpd-
送到我的浏览器,并且这一定是AddType
mod_mime 指令的唯一含义。
我很困惑。
答案1
这添加类型指令应该只影响客户解释你发送的内容。常用的解释是文本/html大多数客户端都会欣然接受并解释您想要的内容。不同的浏览器(例如 IE Firefox 和 Chrome)有时会以不同的方式解释这些标头。
推论命令是添加处理程序这会影响服务器解释脚本。
您的问题有点难以理解。您是不是说,当您使用AddType application/x-httpd-php-source .php .php3 .php4 .php5 .php6
它时,您可以看到实际的 PHP 代码本身,而不是处理过的 HTML,但AddType application/x-httpd-php5 .php
它可以正常工作?
答案2
您只应将此指令.phps
或任何名称添加到您希望使用语法突出显示的 php 源文件中,而不是您想要解释的文件。如果您希望.php{3,4,5,6}
正常工作,请将其添加到正确的处理程序中x-httpd-php
。无法将相同的扩展名分配给两个处理程序并使其正常工作。