Есть ли проблемы с безопасностью / производительностью, если мы установили веб-сервер 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 во что-то несобственное. Итак, у меня есть два варианта:
Чем больше файлов сервер определяет, он должен пройти через PHP-интерпретатор, тем больше накладных расходов, но я думаю, это само собой разумеется. Если на вашем сайте нет ЛЮБОЙ страницы с простым HTML, то вы уже платите все штрафы за производительность, которые вы могли бы заплатить, – добавление HTML в список в этом случае не отличается, чем просто переименование всех файлов с помощью .php расширение.
Действительное снижение производительности произойдет, если у вас есть простые HTML-страницы – сервер будет бесполезно передавать эти страницы на PHP для интерпретации, если нет необходимости. Но даже тогда это не драматично – PHP-интерпретатор не понадобится для этих HTML-страниц, поэтому он ничего не сделает, кроме определения того, что ему ничего не нужно делать. Это имеет стоимость, но это не существенно.
Теперь, если мы говорим здесь о больших объемах, каждый маленький вопрос имеет значение, и это не было бы практически возможным решением. Однако для сайтов с низким и средним объемом штраф за производительность будет ник.
Если это одноразовое изменение и ограниченное количество файлов, которые затронуты, то может быть более консервативным использование директивы FilesMatch
.
<FilesMatch "^(file_one|file_two|file_three)\.html$"> AddType application/x-httpd-php .html </FilesMatch>
Я не согласен с Тугой. Я не думаю, что вы должны сделать это изменение для всех ваших файлов. В любое время, когда вы имеете дело с безопасностью, вы должны попытаться контролировать среду. Выполнение этого только для одного файла, вероятно, является самым безопасным. Вы могли бы сделать что-то вроде
<FilesMatch "^file_name\.html$"> AddType application/x-httpd-php .html </FilesMatch>
Это будет соответствовать file_name.html
и обрабатывать его как .php
где гораздо безопаснее это делать, чем рассматривать ВСЕ файлы .html
как php.