web-dev-qa-db-ja.com

.htmlファイル内でPHPを使用すると、期待どおりに機能しない

Apache2、Linux、php5

この行を.htaccessファイルに追加しました

AddType application/x-httpd-php5 .htm .html

apace2ctl -mを実行し、このモジュールがロードされていることを示します

Php5_module(共有)

<h2>タグ内にPHPコードが1行あるシンプルなHTMLページがあります

 <?php echo "It works!"; ?>

ブラウザでレンダリングすると、サーバーはPHPをコメントアウトしたように見えます

<!--?php echo "It works!"; ?-->

ファイル名をPHP拡張子に変更すると、正常に機能します。

Apacheが指示どおりにHTMLファイルのPHPコードを処理しないのはなぜですか?何が間違っていますか?

3
ScottD

<!--?php echo "It works!"; ?-->

これは、ブラウザを使用して要素を分析したときに表示されるものですObject Inspector ie。 解釈されたソース。これは、サーバーから送信されるHTMLソースではありません(つまり、「ソースの表示」)。

基本的に、HTMLページはPHPで処理されていません。おそらく、使用する正しいディレクティブについてホストに確認する必要があります。代わりにAddHandlerを使用するか、5などをドロップする必要があります。 (ホストが.htaccessでこれらのディレクティブを許可している場合ですか?)

3
MrWhite

私のApacheインストールには、これを追加したphp5.confファイルがあります。

<FilesMatch ".+\.html$">
    SetHandler application/x-httpd-php
</FilesMatch>

.htaccessファイルで、私も変更しました

AddType application/x-httpd-php5 .html

AddType application/x-httpd-php .html

スコット

2
ScottD

あなたがやろうとしていることのために、通常はhtmlファイルの代わりにphpファイルを使用する方が良いでしょう。ただし、HTMLドキュメントであることが絶対に必要な場合は、これを含むサイトのルートに配置された.htaccessファイルを使用できます。

AddType application/x-httpd-php .htm .html

の代わりに

AddType application/x-httpd-php5 .htm .html
1