将 .html 解析为 PHP:如何检查哪种方法正确?

将 .html 解析为 PHP:如何检查哪种方法正确?

将文件解析为 PHP 的常用方式.html是将以下行的第一行(PHP 作为 Apache 模块)或两行(PHP 作为 CGI)添加到文件中.htaccess

AddType application/x-httpd-php .html .htm
AddHandler application/x-httpd-php .html .htm

有时,这需要x-http-php5取决于主机:

AddType application/x-httpd-php5 .html .htm
AddHandler application/x-httpd-php5 .html .htm

但是,我现在在一个新的主机上,这些线路的渗透都不起作用。在所有情况下,原始文件都会被发送到浏览器,并wget显示它x-httpd-php被呈现为 Content-Type!

HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Tue, 07 Aug 2012 14:16:40 GMT
  Server: Apache
  Last-Modified: Tue, 07 Aug 2012 07:46:44 GMT
  ETag: "862239-14-4c6a83216c100"
  Accept-Ranges: bytes
  Content-Length: 20
  X-Powered-By: PleskLin
  Keep-Alive: timeout=15, max=100
  Connection: Keep-Alive
  Content-Type: application/x-httpd-php
Length: 20 [application/x-httpd-php]
Remote file exists.

请注意,这Length: 20正是的长度<?php phpinfo(); ?>,这就是它所服务的内容。我已经确认 PHP 正在作为模块运行,并提供了极好的提示在这个SO答案中。我已与服务器维护人员(一名员工,因此即使我更换主机,我仍然愿意帮助他解决问题)进行了交谈,但他不知道问题是什么或正确的配置是什么。如果这很重要的话,服务器正在基于 Debian 的发行版上运行 Plesk。

答案1

这实际上是一个 Apache 配置问题,此页面有解决方案: http://kb.parallels.com/en/124

为供后人转载于此:

可以通过将以下内容放入“/etc/httpd/conf.d/zz010_psa_httpd.conf”文件中来启用.htaccess 文件:

AccessFileName .htaccess

<Directory "/var/www/vhosts">
Options +All
AllowOverride All
Order allow,deny
Allow from all
</Directory>

然后重新启动Apache:

#service httpd stop
#service httpd start

相关内容