Разобрать HTML как PHP - PullRequest
       14

Разобрать HTML как PHP

2 голосов
/ 25 августа 2011

Существуют ли какие-либо проблемы с безопасностью / производительностью, если мы настроим веб-сервер Apache на настройку Apache для обработки всех HTML как PHP?Я имел в виду:

AddType application/x-httpd-php .php .php3 .php4 .html

Я был в ситуации, когда мне нужно было добавить немного логики PHP в некоторые файлы HTML;в идеале мне не нужно было менять имя файла, например, page.html на page.php (чтобы сохранить рейтинг страницы и т. д. для page.html).

Это связано со следующим вопросом: httpd AddType директива

Изменения: Из существующих ответов / комментариев ниже, похоже, что сообщество предлагает либо использовать перенаправления, либо предназначаться только для определенных файлов HTML.Ограничение заключается в том, что я занимаюсь редизайном существующего сайта (более 400 HTML-страниц; каждая из них использует какой-то шаблон Dreamweaver, который извлекает верхний и нижний колонтитулы из разных файлов).Я надеялся полностью уклониться от Dreamweaver и перейти к чему-то непатентованному.Итак, у меня нет двух вариантов:

  1. Использование Включения на стороне сервера (SSI) для извлечения верхнего и нижнего колонтитулов .Это приведет к тому, что все мои HTML-файлы будут украшены SSI.
  2. Посыпать фрагмент PHP-кода, чтобы он включал верхний и нижний колонтитулы.Для этого выбора у меня есть , чтобы убедиться, что имя файла остается неизменным.

Ответы [ 2 ]

6 голосов
/ 25 августа 2011

Чем больше файлов сервер определит для прохождения через интерпретатор PHP, тем больше накладных расходов, но я думаю, что это само собой разумеется. Если на вашем сайте нет ЛЮБЫХ страниц с простым HTML, то вы уже платите все штрафы за производительность, которые могли бы заплатить - добавление HTML в список ничем не отличается в этом случае , чем просто переименование всех файлы с расширением .php.

Реальное снижение производительности произойдет, если у вас do есть простые HTML-страницы - сервер будет без необходимости передавать эти страницы в PHP для интерпретации, когда ни одна из них не нужна. Но даже тогда, это не драматично - интерпретатор PHP не понадобится для этих HTML-страниц, поэтому он не будет ничего делать, кроме определения того, что ему не нужно ничего делать. Это имеет стоимость, но это не важно.

Теперь, если мы говорим о больших объемах, важен каждый небольшой показатель производительности, и это не будет практически осуществимым решением. Однако для сайтов с низким и средним объемом потери производительности будут равны нулю.

Если это однократное изменение и затронуто ограниченное количество файлов, то может быть более консервативным использовать директиву FilesMatch.

<FilesMatch "^(file_one|file_two|file_three)\.html$">
  AddType application/x-httpd-php .html
</FilesMatch>
4 голосов
/ 25 августа 2011

Я не согласен с Тугой. Я не думаю, что вы должны сделать это изменение для всех ваших файлов. Каждый раз, когда вы имеете дело с безопасностью, вы должны пытаться контролировать окружающую среду. Делать это только для одного файла, вероятно, самый безопасный. Вы могли бы сделать что-то вроде

<FilesMatch "^file_name\.html$">
AddType application/x-httpd-php .html
</FilesMatch>

Это будет соответствовать только file_name.html и обрабатывать его как .php, где гораздо безопаснее это сделать, чем обрабатывать ALL .html файлы как php.

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