2

次のコードは、ポートまたはサーバー名の両方ではなく、いずれかを表示する必要があります。

何があっても常に両方を取得しますか?

<!--#if expr="${SERVER_PORT} = 80" -->
<!--#echo var="SERVER_PORT"-->
<!--#else -->
<!--#echo var="SERVER_NAME"-->
<!--#endif -->

私も次のことを試してみましたが、どちらも喜びはありませんでした:

<!--#if expr="${SERVER_PORT} = '80'" -->
<!--#if expr="${SERVER_PORT} = /80/" -->

これを機能させるにはどうすればよいですか?

4

1 に答える 1

4

IIS 6 を使用している場合は、サーバー サイド インクルードが許可されていることを確認します。

  1. IIS MMC を起動します
  2. ツリーを展開し、Web サービス拡張機能を選択します
  3. サーバーサイドインクルードが許可されていることを確認してください

有効になっている場合は、Web サイトのプロパティで SSI スクリプト マップが有効になっていることを確認します。

  1. IIS MMC を起動します
  2. サイトの右クリックとプロパティ
  3. ホームディレクトリタブを選択
  4. [構成] をクリックします。
  5. 拡張子.shtm, shtml and .stmが にマップされ C:\WINDOWS\system32\inetsrv\ssinc.dll 、動詞が および に設定されていることGET を確認しPOSTます。

更新しました:

#if/#else/#endifIIS はコンストラクト orをサポートしていません#set。IIS 6.0 のサーバー サイド インクルード ディレクティブは、次のドキュメントに記載されています。

IIS サーバー側インクルード ディレクティブ (MSDN ライブラリ)

これらは、IIS 5.1 で使用されているものとまったく同じ意図と目的のためのものです。

使用しようとしているディレクティブは Apache でサポートされていますが、有効になっていることをホスト/管理者に確認する必要があります。詳細については、次を参照してください。

Apache チュートリアル: サーバー サイド インクルードの概要

于 2009-08-28T11:58:05.757 に答える