1

自分のサイトの数十ページに含まれているナビゲーションバーをやり直しています。私が行いたい変更の1つは、ユーザーが表示しているページに基づいて、含まれるコンテンツを変更することです。したがって、私の計画は基本的に、現在どこにでも含まれているファイルを、含める実際のファイルを決定するためのセレクターとして機能させることです。

Apache SSI仕様を読んだことから、SSIを駆動する条件式を使用してこれを実行できると思います。何かのようなもの:

<!--#if expr="[URI is page1.shtml]" -->
<!--#include virtual="page1contents.shtml" -->
<!--#elif expr="[URI is page2.shtml]" -->
<!--#include virtual="page2contents.shtml" -->
<!--#endif -->

[URI is page1]それでは、私の質問は、私が興味を持っている状態を実際にテストするために、その部分で何をすべきかということです。

4

2 に答える 2

1

mod_includeの詳細で答えが見つかりました:

次の例では、DOCUMENT_URIが/foo/file.htmlの場合は「infoo」、/ bar /file.htmlの場合は「inbar」、それ以外の場合は「inどちらも」を出力します。

<!--#if expr='"$DOCUMENT_URI" = "/foo/file.html"' -->
in foo
<!--#elif expr='"$DOCUMENT_URI" = "/bar/file.html"' -->
in bar
<!--#else -->
in neither
<!--#endif -->
于 2010-08-29T01:22:49.050 に答える
0

SSI exprは、v関数または%(Apache / 2.4.18でテスト済み)を使用して、最新のサーバーで引き続き機能します。ドキュメント名を使用することもできます。

例(ドキュメント名のif-test):

<!--#if expr='v("DOCUMENT_NAME")=~/about.html/'-->
<a class="active" href="#">
<!--#else -->
<a href="about.html">
<!--#endif -->
About</a>

例2(ドキュメントパスのif-test):

<!--#if expr="%{DOCUMENT_URI} =~ /product/"-->
Product path
<!--#else-->
Some other path
<!--#endif-->
于 2017-06-30T10:58:27.880 に答える