1

この質問で少し説明したように、私は条件付きフロー制御ステートメントでApache mod_includeを使用して、親ページのURLに応じてインクルードされたshtmlファイルの動作を変更しています。私が抱えている問題は、サイトの一部のページがPHPページであるということです。これは、mod_includeディレクティブが無視される(代わりに標準のhtmlコメントとして扱われる)ことを意味しているようです。

PHPページでこれらのmod_includeディレクティブを正しく処理する方法はありますか?

具体的には、これが私が処理しようとしているものです。

<!--#if expr='"$DOCUMENT_NAME" = /(podcasts\.php)|(series\.php)/' -->
<li id="features" class="current">
<!--#else -->
<li id="features">
<!--#endif -->

同様の行ブロックは、サイトの.shtmlファイルで機能しますが、phpページの場合、上記のすべてがクライアントに出力されます。

編集:私が思いついた解決策に最も近いのは、phpファイルに含まれているshtmlファイルの機能を模倣することです。将来的にリンクを追加するには、複数の場所にリンクを追加する必要があるため、このソリューションは好きではありません。

4

2 に答える 2

1

mod_phpを介してPHPを実行していると仮定すると(問題ではないかもしれません)、次を追加するだけです。

AddOutputFilter INCLUDES .shtml .php

.shtmlと.phpの両方で正常に機能し、両方とも適切に解析されます。

于 2010-09-02T02:33:53.997 に答える
1

SSIについて読み始めたばかりですが、この見積もりは http://httpd.apache.org/docs/2.2/howto/ssi.html#configuringで見つかりました。

してはいけないことについての簡単なコメント。.shtmlファイル名をいじる必要がないように、ApacheにSSIのすべての.htmlファイルを解析するように指示することを勧める人が時々見られます。これらの人々はおそらくXBitHackについて聞いたことがありません。これを行うことにより、SSIディレクティブが含まれていない場合でも、Apacheがクライアントに送信するすべてのファイルを読み取る必要があることに注意してください。これは物事をかなり遅くする可能性があり、良い考えではありません。

したがって、私が正しく理解している場合は、AddOutputFilterに.phpを含めないでください。これは、Apacheがすべての.phpページでSSIディレクティブを検索するように強制するため、サーバーの速度が低下するためです。

多分あなたの問題に対する別の解決策がありますか?

http://httpd.apache.org/docs/2.2/mod/mod_include.html#xbithack

/フィリップ

于 2013-04-07T06:04:37.690 に答える