SHTML
とは SSI (サーバーサイドインクルード) を使用した HTML ファイル拡張子、SSI (サーバーサイドインクルード) は通常「サーバーサイド
埋め込み」または「サーバーサイドインクルード」と呼ばれ、同様の ASP サーバーベースの Web ページです。生産技術。
SSI の仕組み:
サーバーサイド インクルード (SSI) ディレクティブを使用すると、コンテンツをブラウザーに送信する前に、テキスト、グラフィックス、またはアプリケーション情報を Web ページに含めることができます
。たとえば、SSI を使用して、時刻/日付スタンプ、著作権表示、または顧客が記入して返信するためのフォームを含めることができます。インクルード ファイルを使用すると、複数のファイルで
を繰り返すテキストやグラフィックにインクルード ファイルを使用する簡単な方法です。
すべてのファイルにコンテンツをインポートするのではなく、コンテンツをインクルード ファイルに入れるだけです。インクルード ファイルは非常に単純なステートメントで呼び出され、Web サーバーにコンテンツを適切な Web ページに挿入するよう指示します。そして、
インクルード ファイルを使用する場合、コンテンツへのすべての変更は 1 か所で行うだけで済みます。
SSI ディレクティブを含むファイルには特別な処理が必要なため、すべての SSI ファイルには SSI ファイル拡張子を付ける必要があります。デフォルトの拡張子は、
.stm、.shtm、および .shtml です。
Web サーバーは、Web ページの処理中に SSI コマンドを処理します。 Web サーバーは SSI コマンドを検出すると、含まれているファイルのコンテンツを HTML Web ページに直接挿入します。 「インクルードファイル」に SSI ディレクティブが含まれている場合、このファイルも挿入されます。ファイルをインクルードするための基本的な
ディレクティブに加えて、SSI ディレクティブを使用してファイルに関する情報 (ファイルのサイズなど) を挿入したり、アプリケーションやシェル コマンドを実行したりすることもできます。
ウェブサイトのメンテナンスでよく遭遇する問題は、ウェブサイトの構造は修正されているが、少しのコンテンツを更新するために大量のウェブページをやり直さなければならないことです。
SSI は、この問題を解決するためのシンプルかつ効果的な方法を提供します。これにより、Web サイトの基本構造がいくつかの単純な HTML ファイル (
テンプレート) に組み込まれます。サーバーにアクセスし、プログラムがテンプレートに従って Web ページを自動的に生成できるようにすることで、大規模な Web サイトの管理が
簡単になります。
SHTML 形式を使用するページの目的は ASP と似ていますが、API であるため、ASP
よりも高速で、HTML よりも遅くなりますが、サーバー側に組み込まれるためです。ページの更新は簡単です (特に、バナーや著作権などの一括更新)
が HTML の一部であり、その中に特別なサーバー側スクリプトを挿入したいと考えていると想像してください。他の HTML 段落の挿入など。このタスクを完了するには ASP
を選択しますが、タスクがより困難で、さらに時間がかかる場合 (5 秒など)、ASP は必要なく、SHTML を使用することもあります。処理時間はわずか 4 秒です。
SSI は何に使用されますか?
SSI について言及する理由は、Shtml (Server-Parsed HTML の頭字語) だからです。埋め込みサーバー側の
コマンドを含む HTML テキストが含まれます。 SHTML ドキュメントは、ブラウザに送信される前にサーバーによって完全に読み取られ、分析され、変更されます。 shtml
は、asp に似ています。shtml という名前のファイルは、asp の命令と同じように、いくつかの SSI 命令を使用します。クライアントがこれらの shtml ファイルにアクセスすると、サーバーは次のようになります。これらの SHTML ファイルを読み取って解釈し、SHTML ファイルに含まれる SSI 命令を解釈します。たとえば、SHTML ファイル内の SSI 命令を使用して他の HTML ファイル (#include ) を参照できます。サーバーからクライアントに送信されるファイルは次のとおりです。 SHTML はすでに解釈されており、SSI 命令はありません。 HTMLにはない機能、つまり
動的SHTMLを実現できるHTMLの進化版と言えます。 Sina のニュース システムは次のようになります。ニュースの内容は固定ですが、
の広告とメニューは #include を使用して参照されます。
現在、主に次の用途があります:
サーバー側の環境変数を表示する
ドキュメントにテキスト コンテンツを直接挿入する
WEB ドキュメントに関連する情報を表示する
#flastmod #fsize> (ファイル作成日/サイズなど)
サーバー上の各種プログラムを直接実行する
SSI 情報の表示形式を設定する
config> (ファイル作成日・サイズ表示方法など)
Advanced SSI
SSI の使用
SSI は、WEB サーバー用に提供されるコマンドのセットで、HTML 文書のコメント内容に直接埋め込むことができます。例:
は SSI 命令であり、その機能は「info.htm」の内容を現在のページにコピーすることです。訪問者が閲覧すると、info.htm のコンテンツが他の
HTML ドキュメントに表示されます。他の SSI コマンドの使用形式も基本的には先ほどの例と同じであり、SSI の使用は少しコードを挿入するだけで済み、非常にシンプルな使用形式であることがわかります。もちろん、WEB サーバーが SSI をサポートしていない場合は、それを注釈情報
として扱い、ブラウザーはコンテンツを直接スキップします。
WEB サーバーで SSI 機能を設定するにはどうすればよいですか?
一部の WEB サーバー (IIS 4.0/SAMBAR 4.2 など) では、#include ディレクティブを含むファイルは、SSI インタープリター
プログラムにマップされた拡張子を使用する必要があります。そうしないと、Web サーバーは SSI ディレクティブを処理しません。 ; デフォルトでは、拡張子 .stm、.shtm、および .shtml は、インタープリター (Ssinc.dll) に
マップされます。
Apache は設定に応じて次のように srm.conf を変更します。
AddType text/x-server-parsed-html .shtml は .shtml 拡張子を持つファイルの SSI 命令のみを解析します
AddType text/x- server-parsed-html .html は、すべての HTML ドキュメントの SSI 命令を解析します
Netscape WEB サーバーは、管理サーバーを直接使用して SSI 機能を有効にすることができます。
Web サイトはサーバー管理プログラムのマッピング タグを使用しており、拡張機能で追加されたコンテンツ タイプは次のとおりです: wwwserver/html-ssi
Cern サーバーは SSI をサポートしていません。SSI 詐欺手法を使用できます。http:/ にアクセスしてください。 /sw.cse.bris。 ac.uk/WebTools/fakessi.html から PERL スクリプトを
ダウンロードして、CERN サーバーでいくつかの SSI コマンドを使用できるようにします。 (exec コマンドはサポートしていません。)
SSI コマンドの基本形式
プログラムコード:
注:
WEB サーバーが SSI をサポートしていない場合、これはコメントです。情報は無視されます。
#include は SSI 命令の 1 つです。
file は include のパラメータ、info.htm はパラメータ値で、このコマンドではインクルードするドキュメントの名前を指します。
注:
句読点 ="" は省略できます。
SSI コマンドは大文字と小文字が区別されるため、パラメータが機能するには小文字である必要があります。
SSI コマンドの使用方法の詳細な説明
#echo デモ
機能: ページに環境変数を挿入します。
構文:
例:
<-#echo var="DOCUMENT_NAME"-->ドキュメント名
現在時刻
IP アドレス
# includeデモ
機能: テキスト ファイルの内容をドキュメント ページに直接挿入します。
構文:
<--#include file="ファイル名"-->
ファイル ファイル名#include ディレクティブを使用した、ドキュメントを含むディレクトリに対する相対パスです。インクルードされたファイルは、同じ
レベルのディレクトリまたはそのサブディレクトリに存在できますが、上位レベルのディレクトリには存在できません。現在のディレクトリ内の nav_head.htm ドキュメントを表す場合、それは
file="nav_head.htm" です。
仮想ファイル名は、Web サイト上の仮想ディレクトリへのフルパスです。たとえば、サーバードキュメントルートディレクトリの下の hoyi ディレクトリにある
nav_head.htm ファイルに相対することを意味します。その場合、file="/hoyi/nav_head.htm" になります。
パラメータ:
ファイルは、このドキュメントを基準としたインクルード ファイル 場所
仮想は、サーバー ドキュメントのルート ディレクトリを基準とした相対的な場所を指定します
注:
ファイル名には拡張子が必要です。
含まれるファイルには任意のファイル拡張子を付けることができますが、htm 拡張子を直接使用するのが最も便利だと思います (好みに応じて) .inc 拡張子を使用することをお勧めします。
例:
ヘッダー ファイルを現在のページに挿入します
現在のページに末尾ファイルを挿入します
#flastmod と #fsize のデモ
関数:
#flastmod ファイルの最終更新日
#fsize ファイルの長さ
構文:
🎜>file は、インクルードされるファイルを相対的に指定します。このドキュメントの場所 (info.txt など) は、現在のディレクトリ内の info.txt ドキュメントを表します。
virtual は、サーバー ドキュメントのルート ディレクトリを基準とした相対的な場所 (/hoyi/ など) を指定します。 info.txt、
を表します 注: ファイル名には拡張子が含まれている必要があります。
例:
現在のディレクトリにある news.htm ファイルの最新更新日を現在のページに挿入します
< !- -#fsize file="news.htm"--> 現在のディレクトリにある news.htm のファイル サイズを現在のページに挿入します
#exec デモ
機能: 外部プログラムの出力を挿入しますページに移動します。使用される
パラメータが cmd か cgi かに応じて、CGI プログラムに挿入したり、通常のアプリケーションへの入力として挿入したりできます。
構文:
cmd 一般アプリケーション
cgi CGI スクリプト プログラム
例:
パスワード ファイルが表示されます
現在のディレクトリ内のファイル一覧が表示されます
CGI プログラム access_log.cgi を実行します。
注: 上記の例からわかるように、このコマンドは非常に便利ですが、セキュリティ上の問題もあります。
禁止方法:
Apache、access.conf の「Options include ExecCGI」行を削除します。
IIS では、#exec コマンドを無効にするには、SSIExecDisable メタベースを変更します。 🎜> 機能: クライアントのブラウザに返されるエラー情報の形式、日付、ファイル サイズを指定します。
構文:
<--#config errmsg="カスタム エラー メッセージ"-->
;!--#config timefmt="表示形式"-->
パラメータ:
errmsg SSI 実行エラー メッセージを任意の方法でカスタマイズします。
sizefmt ファイル サイズ表示モード。デフォルトはバイト モード (「bytes」) で、キロバイト モード (「abbrev」) に変更できます。
timefmt 時間表示モード。最も柔軟な構成属性です。
例: 存在しないファイルのサイズを表示する
🎜>< ;!--#fsize file="non-existing file.htm"-->
ファイル サイズをキロバイト単位で表示します
構文:
特定の時刻形式で時間を表示します
今日の曜日、月、タイムゾーンを表示します
XSSI
XSSI (拡張 SSI) です。高度な SSI コマンドのセット。Apache 1.2 以降の mod-include モジュールに組み込まれています。
使用できるコマンドは以下のとおりです。
#printenv
#set
#if
#printenv
機能: WEB サーバー環境に現在存在するすべての環境変数を表示します。
構文:
#set
機能: 後続の if ステートメントで使用するために変数に値を割り当てることができます。
構文:
例:
#if
機能: データを変更できるページを作成します。データは、if ステートメントを使用するときに計算された要件に従って表示されます。
構文:
内容の表示
表示内容
表示内容
Zibo Hotline Website の Hoyi CGI Factory ブランチへようこそ://hoyi.zb169.net.
Hoyi CGI ファクトリーへようこそ *' s ブランチ http://linux.cqi.com.cn/~hoyi.
Hoyi CGI Factory へようこそ! 🎜>注: 前のディレクティブで使用されているバックスラッシュは、式の終了として解釈されないように内部引用符を置き換えるために使用されます。省略できません。
1. Config コマンド
Config コマンドは主に SSI のデフォルト設定を変更するために使用されます。その中には次のものがあります:
Errmsg: デフォルトのエラーメッセージを設定します。ユーザーが設定したエラー メッセージを正常に返すには、Errmsg パラメータを HTML ファイル内の他の SSI コマンドの前に配置する必要があります。そうしないと、クライアントは、設定されたエラー メッセージではなくデフォルトのエラー メッセージのみを表示できます。ユーザーのカスタム情報。
Timefmt: 日付と時刻に使用される形式を定義します。 Timefmt パラメータは echo コマンドの前に使用する必要があります。
表示される結果は次のとおりです。
2000 年 4 月 12 日水曜日
おそらく、ユーザーは上記の例で使用されている %A %B %d に慣れていない可能性があります。以下に、SSI でよく使用されるもののいくつかをまとめます。
日付と時刻の形式。
Sizefmt: ファイル サイズがバイト、キロバイト、メガバイトのいずれで表現されるかを決定します。バイト単位の場合、パラメータ値は「バイト」です。
キロバイトとメガバイトには省略形が使用される場合があります。同様に、sizefmt パラメータは、使用する fsize コマンドの前に配置する必要があります。
2. コマンドを含めます。 Include コマンドを使用すると、他のドキュメントから現在解析されているドキュメントにテキストや画像を挿入できます。これは SSI 全体のキーとなります。
Include コマンドを使用すると、1 つのファイルを変更するだけでサイト全体が即座に更新されます。
Include コマンドには 2 つの異なるパラメータがあります。
Virtual: サーバー側のドキュメントへの仮想パスを指定します。
ファイル: 現在のディレクトリへの相対パスを指定します。「../」は使用できず、絶対パスも使用できません。
header.html ファイルが含まれています。
3. Echo コマンド
Echo コマンドは次の環境変数を表示できます:
DOCUMENT_NAME: 現在のドキュメントの名前を表示します。
DOCUMENT_URI: 現在のドキュメントの仮想パスを表示します。例:
ますます長くなる URL アドレスは、間違いなく頭痛の種を引き起こす可能性があります。 SSIを使えば全て解決します。
は Web サイトのドメイン名と SSI コマンドを組み合わせて、完全な URL、つまり
http://YourDomain を表示できるためです。 > QUERY_STRING_UNESCAPED: クライアントから送信されたクエリ文字列をエスケープなしで表示します。すべての特殊文字の前にエスケープ文字 "" が付いています。例:
DATE_LOCAL: サーバーの設定されたタイムゾーンで日付と時刻を表示します。ユーザーは、config コマンドの timefmt パラメーターを組み合わせて、出力情報
をカスタマイズできます。例:
表示される結果は次のとおりです:
2000 年 4 月 15 日土曜日
DATE_GMT: 日付がグリニッジ平均に基づいて返されることを除いて、関数は DATE_LOCAL と同じです。時間。例:
LAST_MODIFIED: 現在のドキュメントの最終更新時刻を表示します。同様に、これは SSI で非常に実用的な機能です。HTML ドキュメントに次のような単純なテキスト
を追加するだけで、更新時刻をページ上に動的に表示できます。
CGI 環境変数
echo コマンドは、SSI 環境変数に加えて、次の CGI 環境変数も表示できます。 SERVER_SOFTWARE: サーバー ソフトウェアの名前とバージョンが表示されます。例:
SERVER_NAME: サーバーのホスト名、DNS エイリアス、または IP アドレスを表示します。例:
SERVER_PROTOCOL: HTTP/1.0 など、クライアント要求で使用されるプロトコル名とバージョンを表示します。例:
SERVER_PORT: サーバーの応答ポートを表示します。例:
REQUEST_METHOD: GET、HEAD、POST などのクライアントのドキュメント要求メソッドを表示します。例:
REMOTE_HOST: リクエスト情報を発行したクライアントのホスト名を表示します。
REMOTE_ADDR: リクエスト情報を発行したクライアントの IP アドレスを表示します。
AUTH_TYPE: ユーザー ID 検証方法を表示します。
REMOTE_USER: 保護されたページにアクセスしたユーザーが使用したアカウント名を表示します。
4. Fsize: config コマンドの sizefmt パラメータを組み合わせることで、出力形式をカスタマイズできます。
5. Flastmod: 指定されたファイルの最終変更日を表示し、config コマンドの timefmt パラメータと組み合わせることができます。出力形式を制御します。
ここでは、flashmod パラメーターを使用して、ページ上のすべてのリンクされたページの更新日を表示できます。メソッドは次のとおりです。
ファイル< ;/A> ;
<--#flastmod virtual="/directory/file.html" -->
別のファイル A>
<--#flastmod virtual="/another_directory/another_file.html" -->
ファイル 2000 年 4 月 19 日
別のファイル 01 月 8 日2000
6. Exec
Exec コマンドは CGI スクリプトまたはシェル コマンドを実行できます。使用方法は以下の通りです。
Cmd: /bin/sh を使用して指定した文字列を実行します。 SSI が includesNOEXEC オプションを使用する場合、このコマンドはブロックされます。
Cgi: CGI スクリプトの実行に使用できます。たとえば、次の例では、サーバーの cgi-bin ディレクトリにある counter.pl スクリプトを使用して、各
ページにカウンタを配置します: