2009-05-21 58 views
0

对于如何配置我的Apache服务器,我有点困惑。我使用Apache 2.2.11在Apache上为SVG和MathML工作PHP

把这些2页作为一个很好的例子:

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等组合使用?

回答

4

如果您有一个输出非HTML的PHP​​脚本,您只需在脚本中设置内容类型的HTTP标头。

例如,如果你有一个脚本调用xml.php输出XML,它应该包括这样一行:

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

没有apache的配置是必要的。

0

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

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

(也就是说,除非你的服务虽然PHP源文件本身是未处理的,但我怀疑你想这样做。)

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