IIS 7.5では、HTMLはSHTMLのようなinclude関数(モジュールマッピングの追加)をサポートします。

IIS 7.5では、HTMLはSHTMLのようなinclude関数(モジュールマッピングの追加)をサポートします。

最初はたくさんのエラーを見つけましたが、実際には非常に簡単です。shtm の元の設定を参照するだけです。

前提条件:

ServerSideIncludeModuleのインストール:

IIS をインストールするときに、次のようにサービス (「サーバー上のファイルを含める」オプション) を選択します。

1: 処理マッパー

モジュール マッピング要求パス *.html を追加します。モジュールは ServerSideIncludeModule を選択し、名前を入力します: SSINC-html

2: IISを再起動する

cmdにiisreset /restartと入力します

詳細な手順は次のとおりです。

1. まず、フォルダではなく、変更したいウェブサイトを見つけ、右側のハンドラーマッピングを見つけてダブルクリックして入力します。

2. 次の3つを見つけてください

これら 3 つは stm、shtm、shtml です。すべて同じ効果がありますが、サフィックスが異なります。開いて確認してみましょう。

3. *.shtm を使用して開くと、モジュール マッピングによって実装されていることがわかります。これにより、後で追加するときに便利になります。他の .do ファイルは、php と同じように実行できます。すべて同じです。元のマッピング方法を参照してください。

4.コピーを追加します

ここで、*.html は shtm をサポートしています。右側に追加されたモジュール マッピングが表示されます。

5. パラメータは以下のとおりです

*.html

ドロップダウンからServerSideIncludeModuleを選択します

6. 自分が認識しやすい名前を書くことができます。

7. 同様に、*.htmも同じように設定できます。

shtmの使い方を皆さんに紹介したいと思います

shtml は SSI テクノロジーに使用されるファイルです。 これは Server Side Include (SSI サーバー側インクルード ディレクティブ) です。 一部の Web サーバーには SSI 機能があります。 shtml ファイルは特別に扱われます。 まず、shtml ファイルをスキャンして、特別な SSI 命令があるかどうかを確認します。 ある場合、SSI 命令は Web サーバーの設定ルールに従って解釈されます。 説明後は、一般のHTMLと一緒にクライアントに転送されます。

1. 設定コマンド

Config コマンドは主に SSI のデフォルト設定を変更するために使用されます。で:
Errmsg: デフォルトのエラー メッセージを設定します。ユーザーが設定したエラー メッセージを正常に返すには、HTML ファイル内の他の SSI コマンドの前に Errmsg パラメータを配置する必要があります。そうしないと、クライアントはユーザーが設定したカスタム メッセージではなく、デフォルトのエラー メッセージのみを表示できます。
<!--#config errmsg="エラー! [email protected] にメールしてください -->
Timefmt: 日付と時刻に使用する形式を定義します。 echo コマンドの前に timefmt パラメータを使用する必要があります。
<!--#config timefmt="%A, %B %d, %Y"-->
<!--#echo var="最終変更日" -->

結果は次のとおりです。

2019年4月12日水曜日

おそらく、ユーザーは上記の例で使用されている %A %B %d に馴染みがないかもしれません。以下に、SSI でよく使用される日付と時刻の形式の一部を表の形式でまとめます。

Sizefmt : ファイル サイズをバイト、キロバイト、メガバイトのいずれで表すかを決定します。バイトが指定されている場合、値は「バイト」です。キロバイトとメガバイトの略語を使用できます。同様に、sizefmt パラメータを使用するには、fsize コマンドの前に配置する必要があります。

<!--#config sizefmt="バイト" -->
<!--#fsize ファイル="index.html" -->

2. コマンドを含める

Include コマンドを使用すると、現在解析中のドキュメントに他のドキュメントのテキストまたは画像を挿入できます。これが SSI 全体のキーとなります。 Include コマンドを使用すると、1 つのファイルを変更するだけでサイト全体を即座に更新できます。

Include コマンドには 2 つの異なるパラメーターがあります。
仮想: サーバー上のドキュメントへの仮想パスを指定します。例えば:

<!--#include virtual="/includes/header.html" -->

ファイル: 現在のディレクトリからの相対パスを指定します。「../」または絶対パスは使用できません。例えば:
<!--#include ファイル="header.html" -->
これには、各ディレクトリに header.html ファイルが含まれている必要があります。

3. エコーコマンド

echo コマンドは次の環境変数を表示できます。

DOCUMENT_NAME : 現在のドキュメントの名前を表示します。

<!--#echo var="ドキュメント名" -->

結果は次のとおりです。
インデックス.html

DOCUMENT_URI : 現在のドキュメントの仮想パスを表示します。例えば:

<!--#echo var="DOCUMENT_URI" -->

結果は次のとおりです。

/あなたのディレクトリ/あなたのファイル名.html

ウェブサイトが成長し続けると、URL がどんどん長くなり、間違いなく頭痛の種になります。 SSIを使えば全て解決します。ウェブサイトのドメイン名と SSI コマンドを組み合わせて完全な URL を表示できるため、次のようになります。

http://YourDomain<!--#echo var="DOCUMENT_URI" -->

QUERY_STRING_UNESCAPED: クライアントから送信されたクエリ文字列をエスケープせずに表示します。すべての特殊文字の前にはエスケープ文字「\」が付きます。例えば:

<!--#echo var="QUERY_STRING_UNESCAPED" -->

DATE_LOCAL : サーバーの設定されたタイムゾーンで日付と時刻を表示します。ユーザーは、config コマンドの timefmt パラメータを組み合わせることで出力情報をカスタマイズできます。例えば:

<!--#config timefmt="%A、%Y 年 %B の %d" -->
<!--#echo var="DATE_LOCAL" -->

結果は次のとおりです。

2019年4月15日土曜日
DATE_GMT: 返される日付がグリニッジ標準時に基づく点を除いて、DATE_LOCAL と同じ機能です。例えば:

<!--#echo var="DATE_GMT" -->

LAST_MODIFIED: 現在のドキュメントの最終更新時刻を表示します。これも SSI の非常に便利な機能です。次の簡単なテキスト行を HTML ドキュメントに追加するだけで、ページに更新時刻が動的に表示されます。

<!--#echo var="最終変更日" -->

CGI 環境変数

SSI 環境変数に加えて、echo コマンドは次の CGI 環境変数も表示できます。

SERVER_SOFTWARE: サーバー ソフトウェアの名前とバージョンを表示します。例えば:
<!--#echo var="SERVER_SOFTWARE" -->
SERVER_NAME: サーバーのホスト名、DNS エイリアス、または IP アドレスを表示します。例えば:
<!--#echo var="サーバー名" -->
SERVER_PROTOCOL: HTTP/1.0 など、クライアント要求で使用されるプロトコル名とバージョンを表示します。例えば:
<!--#echo var="SERVER_PROTOCOL" -->
SERVER_PORT : サーバーの応答ポートを表示します。例えば:
<!--#echo var="SERVER_PORT" -->
REQUEST_METHOD: GET、HEAD、POST など、クライアントのドキュメント要求メソッドを表示します。例えば:
<!--#echo var="REQUEST_METHOD" -->
REMOTE_HOST : 要求情報を発行したクライアントホストの名前を表示します。
<!--#echo var="REMOTE_HOST" -->
REMOTE_ADDR: 要求情報を発行したクライアントの IP アドレスを表示します。
<!--#echo var="REMOTE_ADDR" -->
AUTH_TYPE : ユーザーの認証方法を表示します。
<!--#echo var="AUTH_TYPE" -->
REMOTE_USER: 保護されたページにアクセスするユーザーが使用するアカウント名を表示します。
<!--#echo var="REMOTE_USER" -->

4. Fsize : 指定したファイルのサイズを表示します。config コマンドの sizefmt パラメータと組み合わせることで出力形式をカスタマイズできます。

<!--#fsize ファイル="index_working.html" -->

5. Flastmod : 指定されたファイルの最終変更日を表示します。出力形式は、config コマンドの timefmt パラメータと組み合わせて制御できます。

<!--#config timefmt="%A、%Y 年 %B の %d" -->
<!--#flastmod ファイル="file.html" -->

ここでは、flastmod パラメータを使用して、ページ上のすべてのリンクされたページの更新日を表示できます。方法は次のとおりです。

<!--#config timefmt="%B %d, %Y" -->
<A href="/directory/file.html" rel="external nofollow" >ファイル</A>
<!--#flastmod virtual="/directory/file.html" -->
<A href="/another_directory/another_file.html" rel="external nofollow" >別のファイル</A>
<!--#flastmod virtual="/別のディレクトリ/別のファイル.html" -->

結果は次のとおりです。
ファイル 2019年4月19日
もう一つのファイル 2019年1月8日

6. 実行

Exec コマンドは、CGI スクリプトまたはシェル コマンドを実行できます。使い方は次のとおりです:
Cmd: 指定された文字列を実行するには、/bin/sh を使用します。 SSI で IncludesNOEXEC オプションを使用すると、このコマンドはブロックされます。
Cgi: CGI スクリプトを実行するために使用できます。たとえば、次の例では、サーバーの cgi-bin ディレクトリにある counter.pl スクリプトを使用して、各ページにカウンターを配置します。

<!--#exec cgi="/cgi-bin/counter.pl" -->

今回ご紹介させていただきましたが、とても簡単ですね。

<<:  MySQL 8.0.17 をインストールしてリモート アクセスを構成する方法

>>:  Vueでアイコンをカスタマイズする手順

推薦する

Tomcat が応答データグラムを書き戻すタイミングの詳細な分析

疑問が生じるこの質問は、ファイルのダウンロードを記述しているときに発生しました。HttpServle...

Tomcat が非同期サーブレットを実装する方法の詳細な説明

序文これまでの Tomcat シリーズの記事を通じて、私のブログを読んでいる学生は Tomcat に...

MySQL マスタースレーブレプリケーションの実践の詳細説明 - GTID ベースのレプリケーション

GTIDベースのレプリケーション導入GTID ベースのレプリケーションは、MySQL 5.6 以降に...

Nginx のインストールと設定ルールの詳細な紹介

目次1. nginxのインストールと操作(Mac OS環境) 2. nginxルールの設定3. コマ...

ffmpeg 中国語パラメータの詳細な説明

FFMPEG 3.4.1 バージョンパラメータの詳細使用方法: ffmpeg [オプション] [[入...

MySQLインデックスの使用に関するヒントと注意事項

1. インデックスの役割一般的なアプリケーション システムでは、読み取りと書き込みの比率は約 10:...

Vue は Ctrip のカルーセル効果を模倣します (スライディング カルーセル、以下は高度に適応)

まずケースを見てみましょう。vue+swiper を使用して実装します。スライドの高さが異なる場合、...

Nginx ベースの HTTPS ウェブサイトを設定する手順

目次序文:暗号化アルゴリズム: 1. HTTPS の概要2. NginxはHTTPSウェブサイト設定...

小さなプログラムが天井に張り付いてしまう問題を完璧に解決するためにposition:stickyを使用する方法

最近、あるプロジェクトのクライアントが、上部に 2 つのタブ メニューを配置することを要求しました。...

シェルスクリプトを使用したMySQLデータベースの自動バックアップ

シェルスクリプトを使用したMySQLデータベースの自動バックアップデータベースを頻繁にバックアップす...

MySQL 制約の種類と例

制約制約によりデータの整合性と一貫性が確保される制約はテーブルレベルの制約と列レベルの制約に分けられ...

MySQL での coalesce() の使用に関するヒントのまとめ

序文最近、偶然 MySQL の coalesce を発見しました。ちょうど時間があったので、MySQ...

Vue はボタンをクリックしてファイルをダウンロードする操作コードを実装します (バックエンド Java)

前回の記事では、ボタンをクリックしてファイルをダウンロードするVueの機能を紹介しました。今日は、ボ...

画像を表示したり非表示にしたりするための JavaScript

JavaScriptは画像を表示したり非表示にしたりしますが、参考までに具体的な内容は次のとおりで...

Nginx の高同時実行最適化の実践

1. チューニングの必要性​ 私は、どのように書けばいいのか本当に分からないので、共有するために最適...