IIS5またはIIS6で、SSIを使用しようと思います。

設定は完了し、以下のようなインクルードは問題無く動作します。
<!--#include file="xxxxx" -->

しかし、以下のような分岐は動作しません。
<!--#if expr="$HTTP_ACCEPT_LANGUAGE = ja" -->
こんにちわ。
<!--#else -->
Hello!!
<!--#endif -->

エラーがでるわけでもなく、ブラウザー上では、「こんにちわ。Hello!」だけが表示され、ソースは上記のままです。

IISでは、if exprが使用できないのでしょうか?
できるとしたら、他に代替え方法がありましたらお教えいただけたら幸いです。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/07/09 11:37:45
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:kidd-number5 No.1

回答回数117ベストアンサー獲得回数15

ポイント60pt

http://www.microsoft.com/JAPAN/developer/library/jpiis/core/iisi...

リファレンスに載っている限りではifが使えないようです。

代替案としてはexec(http://www.microsoft.com/JAPAN/developer/library/jpiis/core/iisi...)を使って、同様の分岐を行うためのスクリプトを実行するしかないでしょう。

PerlでCGIを書いたり、ASPを書いたりすれば良いと思います。

ASPの例を挙げます。

呼び出し元でSSIで以下

<!--#exec cgi="sample.asp"-->

sample.asp

<%
Dim accept_language
accept_language = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
If accept_language = "ja"
%>
<!-- jaのときに書きたい内容 -->
<%
Else
%>
<!-- jaではないときに書きたい内容 -->
<%
End If
%>
id:frankblack

例まであげていただき、有り難うございます。

とても解りやすく参考になりました。

2006/07/07 22:56:06

その他の回答1件)

id:kidd-number5 No.1

回答回数117ベストアンサー獲得回数15ここでベストアンサー

ポイント60pt

http://www.microsoft.com/JAPAN/developer/library/jpiis/core/iisi...

リファレンスに載っている限りではifが使えないようです。

代替案としてはexec(http://www.microsoft.com/JAPAN/developer/library/jpiis/core/iisi...)を使って、同様の分岐を行うためのスクリプトを実行するしかないでしょう。

PerlでCGIを書いたり、ASPを書いたりすれば良いと思います。

ASPの例を挙げます。

呼び出し元でSSIで以下

<!--#exec cgi="sample.asp"-->

sample.asp

<%
Dim accept_language
accept_language = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
If accept_language = "ja"
%>
<!-- jaのときに書きたい内容 -->
<%
Else
%>
<!-- jaではないときに書きたい内容 -->
<%
End If
%>
id:frankblack

例まであげていただき、有り難うございます。

とても解りやすく参考になりました。

2006/07/07 22:56:06
id:ohmix1 No.2

回答回数235ベストアンサー獲得回数14

ポイント10pt

使えるのは、以下のディレクティブだけみたいです。ASP使えということでしょう。

  • 「#config」では、クライアント ブラウザに返されるエラー メッセージ、日付、およびファイル サイズの形式を指定します。
  • 「#echo」では、環境変数の値を HTML ページに挿入します。
  • 「#exec」では、アプリケーションまたはシェル コマンドを実行し、その結果を HTML ページに挿入します。
  • 「#flastmod」では、ファイルの修正時刻を HTML ページに挿入します。
  • 「#fsize」では、ファイル サイズを HTML ページに挿入します。
  • 「#include」では、ファイルを HTML ページまたは ASP ページにインクルードします。


http://www.microsoft.com/windows2000/ja/server/iis/default.asp?u...

↑の「サーバー側インクルード リファレンス」を参照。

id:frankblack

ありがとうございます。

2006/07/07 22:55:45

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません