2009-05-21 91 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標頭。