使SVG和MathML在Apache上运行PHP

时间:2009-05-21 00:15:53

标签: php xhtml apache2

我对如何配置我的Apache服务器感到有点困惑。我正在使用Apache 2.2.11

以这两页为例:

HTML XHTML

它们都是同一种语法,但扩展名不同。第一个文件以HTML作为扩展名,第二个文件以XHTML作为扩展名。

后台服务器具有以下设置:

AddType application/xhtml+xml .xhtml

通过这样做,可以正确显示MathML和SVG。

现在,大多数网站都使用PHP。我在我的Apache中设置了这个:

AddType application/x-httpd-php .php

标准语法和所有。

但如果我希望我的PHP页面也显示MathML和SVG,我想我需要这样做:

AddType application/xhtml+xml .php
AddType application/x-httpd-php .php

但这不起作用,PHP不再解析。

那么,我怎样才能确保PHP仍能正常工作,同时我可以结合使用MathML和SVG这样的东西?

2 个答案:

答案 0 :(得分:4)

如果您的PHP脚本输出的内容不是HTML,您只需在脚本中设置内容类型的HTTP标头。

例如,如果您有一个名为xml.php的脚本输出XML,它应该包含如下行:

<?php header('Content-type: application/xhtml+xml'); ?>

不需要apache配置。

答案 1 :(得分:0)

AddType directive控制如何在服务器上处理.php文件。由于相应的ActionAddHandler指令,该文件被传递给配置为处理application / x-httpd-php类型的程序或模块:

Action application/x-httpd-php "/php/php-cgi.exe"

(也就是说,除非你自己提供PHP源文件,否则不加工。我怀疑你是不是想这样做。)

保持您以前的配置。使用header函数为脚本的输出设置不同的Content-Type标头,如Frank's answer所示。