2012-03-29 4 views
1

Я пытался выполнить php-код внутри документа с расширением .htm или .html. Я, наконец, получил это работает, используя:htaccess модификации, работающие на некоторых страницах, но не на других?

AddType применение/х-HTTPD-PHP .php .html .htm

Теперь, будучи в состоянии выполнить PHP в .htm документов, работает только если я перейти непосредственно к страница .htm, такие как: http://www.foobar.com/layout.htm

Однако, это не работает, если я иду на страницу index.php, которая использует что layout.htm страницы ...

Это пример того, что index page url выглядит так: http://www.foobar.com/index.php

Что я делаю неправильно?

+0

Как вы * используете * страницу точно? – jeroen

+0

Вкладка «Макет» включает теги, такие как {HEADER} и другие похожие имена в фигурных скобках. Я не очень хорошо знаком с этим ... кроме того, что это обычная страница html/css. Я знаю, что если я добавлю html в файл layout.htm (без использования php), он будет отображаться на странице index.php в порядке. Однако, если я изменяю страницу макета с помощью php, изменения появляются только в том случае, если я перехожу непосредственно на страницу layout.htm, но никогда не появляюсь на странице index.php. – CSoverIT

+0

Вы должны опубликовать раздел PHP-кода, который * использует * htm-файл. – jeroen

ответ

1

Предполагая, что вы используете что-то вроде include в вашем php-файле, чтобы включить html-файл, ваши правила .htaccess не окажут никакого влияния на включенный файл.

Правила только для выполнения выполняются по запросам, которые сделаны на веб-сервере apache, и когда вы включаете локальный файл в php, вы просто запрашиваете файл в локальной файловой системе; вы не запрашиваете его через apache.

Edit: на основе комментария ниже ваш вопрос, это также возможно, что вы используете что-то вроде readfile, чтобы получить содержимое файла HTM. Если это так, вам нужно изменить это на include, чтобы выполнить php.

+0

Я использую функцию включения php. – CSoverIT

1

Ваше правило .htaccess не распространяется на включенные файлы в php.

Вы проверили эту страницу: http://php.net/manual/en/function.include.php

Когда файл включается, разбор капель из режима PHP и в режим HTML в начале целевого файла, и снова возобновляется в конце. По этой причине любой код внутри целевого файла, который должен быть запущен как PHP-код, должен быть заключен в допустимые начальные и конечные теги PHP.

Смежные вопросы