Как заставить SVG и MathML работать на PHP на Apache - PullRequest
0 голосов
/ 21 мая 2009

Я немного запутался в том, как настроить мой сервер Apache. Я использую Apache 2.2.11

Возьмите эти 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 в комбинации?

Ответы [ 2 ]

4 голосов
/ 21 мая 2009

Если у вас есть PHP-скрипт, выводящий что-то отличное от HTML, вам просто нужно установить HTTP-заголовок типа контента из вашего скрипта.

Например, если у вас есть скрипт с именем xml.php, который выводит XML, он должен содержать строку вроде:

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

Нет необходимости в настройке apache.

0 голосов
/ 21 мая 2009

Директива AddType управляет обработкой файлов .php на сервере . Файл передается программе или модулю, сконфигурированному для обработки типа application / x-httpd-php, из-за соответствующей директивы Action или AddHandler, такой как эта:

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

(То есть, если вы сами не обрабатываете исходный файл PHP, необработанный. Однако я сомневаюсь, что вы хотите это сделать.)

Сохраните вашу конфигурацию такой, какой она была раньше. Используйте функцию header для установки другого заголовка Content-Type для вывода вашего скрипта, как показывает ответ Фрэнка .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...