web-dev-qa-db-ja.com

HTMLおよびWindows Server 2008上のPHP 7でIISで機能するサーバー側インクルード

現在、HTMLページで次のように動作するようにSSIを設定しています

<!--#INCLUDE file="/includes/header.inc"-->

また、サーバーでPHPを使用し、PHPとHTMLに同じファイルを含めるための2つの別個のテンプレートを作成しないようにしています。 PHPに次のコマンドでファイルを含めることができることを知っています。

include 'header.inc';

これはHTMLページでは機能しないため、IIS 7を構成して#includeディレクティブをHTMLページとPHPページの両方で機能させることはできますか?この期間を行うためのより良い方法はありますか?

2
Blake Plumb

これはHTMLページでは機能しないため、両方のHTMLで#includeディレクティブが機能するようにIIS 7を構成することは可能ですおよびPHPページ?この期間を行うより良い方法はありますか?

全体的に物事を単純化する何かは、IISを.htmlファイルではなく.phpファイル内のPHPコードを使用するように構成することです。その後、HTMLページでPHPコードを直接使用でき、#includeディレクティブまたはPHPのincludeのいずれかを使用できます。

IIS 7でこれを行うには、ここで説明されている手順に従います。 IISリクエストを処理するようにPHPを設定 、ただし変更:Request path: *.phpから-> Request path: *.html

5
dan

あなたの本能は正しいブレイクだと思います。絶対に必要でない場合は、PHPエンジンに.html/.htmを追加しないでください。 PHPのドキュメントは、これがパフォーマンスに影響を与える可能性があるという事実に少し触れていますが、詳細については触れていません...攻撃者/訪問者からPHPを隠すことについて話している記事。

PHPドキュメント:PHPの非表示を参照

このスレッドの件名に基づいたあなたの質問は、[Are there]にはHTMLでの動作とPHPでのIIS 7が含まれますサーバー2008 [?]

IISで既にSSIを有効にしている場合、これはPHPで通常のhtmlとして既に機能していませんか?または、SSIモジュールではない3番目のインクルードオプション、またはHTMLとPHPコードの両方で機能するPHP engine/include関数を探していますか? SSIが必要な処理を行う場合、andWindowsサーバーに既にロードされているand専用の時間とリソースを開発および保護し、およびPHPで動作します。なぜ別のオプションを探すのですか?これは対立的なものではなく、解決しようとしている問題についてもう少し学ぼうとするだけです。

それ以外の場合、これはまったく同じように機能します。

。htmlファイル

<!--#INCLUDE file="/includes/header.inc"-->

。phpファイル

<?php
echo "<!--#INCLUDE file=\"/includes/header.inc\"-->\n";
?>
0
Eric