SSIの使い方の詳しい説明(2ターン目)

WBOY
リリース: 2016-06-21 09:13:20
オリジナル
1259 人が閲覧しました

詳しい説明

2.Includeコマンド

Includeコマンドは、他の文書から現在解析されている文書にテキストや画像を挿入できます。これはSSI全体の鍵となります。 Include コマンドを使用すると、1 つのファイルを変更するだけでサイト全体が即座に更新されます。

Include コマンドには 2 つの異なるパラメータがあります。サイトを更新するために間違ったパラメータを使用すると、本来の目的を達成できないだけでなく、大量のエラー メッセージが表示されます。

仮想: サーバー側のドキュメントへの仮想パスを与えます。例:



サイトのコンテンツをより合理的に整理するために、ユーザーはルート ディレクトリに include サブディレクトリを作成できます。すべてのインクルード ファイルを保存します。 Virtual パラメーターは、含めるべきものが仮想ファイルであること、つまり、ファイルと現在解析されているドキュメントが同じディレクトリーに存在せず、別のディレクトリーに保管されていることをサーバーに通知できます。サーバーは、このパラメータの値に基づいて、ルート ディレクトリ内の include サブディレクトリを検索します。この方法を使用すると、HTML ドキュメントに含まれるすべてのファイルを 1 つのディレクトリに配置し、異なるページをそれらの関係に応じて異なるディレクトリまたはサブディレクトリに保存できます。サーバーがどのドキュメントを解析しても、エラーを生成することなく、含まれているファイルを見つけることができます。

しかし、解決しなければならない小さな問題があります。通常、いくつかの TITLE タグと META タグをページに追加します。すべてのページが同じヘッダー ファイルを呼び出すように規定すると、柔軟性が非常に低くなります。このような問題が発生した場合、ユーザーは 2 つのインクルード ファイルを使用できます。1 つは TITLE タグの前のコンテンツを設定し、もう 1 つは META タグの後の部分を設定し、2 つのインクルード ファイルの間にカスタム コンテンツを追加できます。例:


ページのタイトル





ここにページのコンテンツを配置します



上記のことから、ページにヘッダーとフッターを含めることで、サイト更新の負荷を大幅に軽減できることがわかります。しかし、ページの最終更新時刻など、一部のコンテンツを動的に表示したい場合はどうすればよいでしょうか?問題ありません。インクルードされたファイルを .html サフィックスを付けて保存すると、インクルードされたファイル内で他のインクルード ファイルを呼び出すことができます。

ファイル: 現在のディレクトリへの相対パスを指定します。「../」は使用できず、絶対パスも使用できません。例:



これには、各ディレクトリに header.html ファイルが含まれる必要があります。もちろん、この方法を使用することは、すべてのページを更新することよりも簡単ではありませんが、ユーザーが 1 つまたは 2 つのファイルのみを更新する場合には、それでも非常に便利です。たとえば、HTML に不慣れなユーザーに Web サイト上のニュース ページを直接変更させたくない場合は、そのユーザーに別のテキスト ファイルを更新させてから、そのファイルを HMTL ドキュメントに含めることができます。そうすれば、HTML が壊れることはありません。オリジナルのページと更新されたコンテンツを同時に提供し、両方の長所を生かします。


3.Echo:

Echoコマンドは以下の環境変数を表示できます:

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



表示される結果は次のとおりです:

index.html

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



表示される結果は次のとおりです:

/YourDirectory/YourFilename.html

Web サイトが開発を続けるにつれて、これらの URL は長くなります。さらに長いアドレスは間違いなく頭痛を引き起こす可能性があります。 SSIを使えば全て解決します。 Web サイトのドメイン名と SSI コマンドを組み合わせて完全な URL を表示できるため、つまり:

http://YourDomain

QUERY_STRING_UNESCAPED: Display without transfer 処理のためにクライアントによって送信されるクエリ文字列。すべての特殊文字の前にエスケープ文字 "" が付いています。例:



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




LAST_MODIFIED: 現在のドキュメントの最終更新時刻を表示します。同様に、これは SSI の非常に実用的な機能です。HTML ドキュメントに次のような単純なテキストを追加するだけで、更新時間をページ上に動的に表示できます。

名前とバージョン。例:



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 パラメータと組み合わせて制御できます。出力形式。



File< ;!--#flastmod virtual="/directory/file.html" -->
別のファイル


表示された結果は次のとおりです:

File April 19, 2000
Another File January 08, 2000

おそらく読者の中には、2つのリンクがそうだと思う人もいるだろう。複雑でもありません。実際、ページ上に 20 以上のリンクがあり、各リンクが定期的に更新されている場合、blastmod を使用して変更日を表示していることがわかります。


6.Exec

Exec コマンドは CGI スクリプトまたはシェルコマンドを実行できます。使い方は以下の通りです:

Cmd: /bin/sh を使用して、指定された文字列を実行します。 SSI が includesNOEXEC オプションを使用する場合、このコマンドはブロックされます。

Cgi: CGIスクリプトの実行に使用できます。たとえば、次の例では、サーバーの cgi-bin ディレクトリにある counter.pl スクリプトを使用して、各ページにカウンターを配置します: