ホームページ  >  記事  >  バックエンド開発  >  SSIの使い方を詳しく解説_PHPチュートリアル

SSIの使い方を詳しく解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:05:42829ブラウズ

何千ページもある Web サイトへの変更をできるだけ短時間で完了する方法に苦労したことはありますか?次に、この記事の紹介文を読んでください。役立つかもしれません。

SSIとは何ですか?

SSIとは英語のServer Side includeの略で、中国語に訳すとサーバーサイドインクルージョンという意味です。技術的に言えば、SSI は、コメント行を通じて呼び出すことができる HTML ファイル内のコマンドまたはポインターです。 SSI には強力な機能があり、簡単な SSI コマンドで Web サイト全体のコンテンツを更新したり、時刻と日付を動的に表示したり、シェルや CGI スクリプト プログラムなどの複雑な機能を実行したりできます。 SSI は、資金不足、時間制限、作業負荷の大きい Web サイト開発者にとって最適な助っ人であると言えます。

SSI は当初 NCSA サーバー プラットフォームで起動され、Apache サーバーで拡張および強化され、現在ではほぼすべてのサーバーで実行できるようになりました。この記事では主に、Apache サーバーをベースとした SSI の使用方法を紹介します。


SSI を開始するにはどうすればよいですか?

Apacheサーバーでは、サーバー構成ファイルを直接編集するか、SSIを使用する必要があるディレクトリに.htaccessファイルを作成することで、SSIを開始できます。具体的なプロセスは次のとおりです。


1. サーバー設定ファイル

ユーザーがサーバー設定ファイルへのアクセス権を持っている場合、ファイル access.conf および srm.conf を編集することで SSI を開始できます。

まず、Telnetを使用してサーバーにリモートログインし、設定ファイルが保存されているディレクトリを見つけます。通常、Apache サーバーの設定ファイルは「/usr/local/etc/httpd/conf」ディレクトリに保存されます。任意のテキスト エディタを使用してファイル srm.conf を開き、次の行を見つけます:

# サーバー側インクルードまたは CGI を外部で使用する場合は、
# ScriptAliased ディレクトリで、次の行のコメントを解除します。
#AddType text/x-server- parsed-html .shtml

#AddType application/x-httpd-CGI .CGI

ユーザーの設定ファイルには上記のコメントコマンドラインが含まれていない可能性がありますが、AddType で始まる 2 行を見つけて各行の先頭を削除するだけです。 「#」記号で十分です。

変更を保存して、access.conf ファイルを開きます。ユーザーは、DocumentRoot (ルート ファイル) が設定されているファイル内のセクションを見つける必要があります。一般的には以下のようになりますが、タグの間に他の設定内容があることを排除するものではありません。

# これは、DocumentRoot に設定したものに変更する必要があります。

# これは、「なし」、「すべて」、または「インデックス」の任意の組み合わせにすることもできます。 ,
Options Indexes FollowSymLinks include


ユーザーがスクリプトやシェル コマンドを実行したくない場合は、キーワード includeNOEXEC をオプション オプション行に追加できます。これにより、SSI は許可されますが、CGI やスクリプト コマンドは実行できません。 。 (注: Apache サーバーの最新バージョンには設定ファイル httpd.conf が 1 つだけあり、上記の内容はこのファイルに含まれています)

2. ファイル .htaccess を作成します

ユーザーがサーバーに直接アクセスできない場合構成ファイル。ファイル エディタを使用して .htaccess というファイルを作成できます。サーバーがファイルが隠しファイルであることを認識できるように、ファイル名の前に記号「.」が必要であることに注意してください。これにより、ファイルのセキュリティが向上し、誤った操作が回避されます。次の 3 行のテキストを .htaccess ファイルに追加する必要があります:

Options Indexes FollowSymLinks includes
AddType application/x-httpd-CGI .CGI
AddType text/x-server-parsed-html .shtml

完了後、.htaccess を追加できます。ファイルはサーバー上の対応するディレクトリにアップロードされ、ファイルはすべてのサブディレクトリに対して有効です。ユーザーがディレクトリ レベルで CGI またはシェル コマンドを無効にしたい場合は、.htaccess ファイルのオプション行にキーワード includeNOEXEC を追加できます。

3. .shtml または .html を使用しますか?

SSI を含むファイルは、クライアントにダウンロードされる前にサーバーの解析プロセスを通過する必要があります。これによりサーバーの負荷はある程度増加しますが、ユーザーの Web サイトに毎日何百万人ものユーザーがアクセスする場合を除き、特定のサーバーのパフォーマンスが大幅に低下することはありません。ただし、すべてのページで SSI を使用する必要がない場合は、実際にはサーバーにすべてのページを解析させる必要はありません。ユーザーがいくつかの特別なページでのみ SSI を使用したい場合は、サーバーが SSI を含む .shtml ファイルのみを解析できるように、ファイル拡張子を .shtml に変更できます。一方、SSI を使用するページが複数あるが、ユーザーが .shtml サフィックスを使用したくない場合は、.htaccess ファイルで次のコマンド ラインを使用できます:

AddType text/x-server-parsed- html .html


SSI 構文

SSI は、使用時に次の形式に従います:



ここで、directive は、に送信されるコマンドの名前です。サーバー、パラメータはコマンド、値はユーザーが取得したい命令処理結果です。
すべての SSI コマンドは「

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

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


ページのタイトル





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



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

File: Give? カレントディレクトリの相対パス。「../」は使用できず、絶対パスは使用できません。例:



これには、各ディレクトリに 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 バージョンです。


http://www.bkjia.com/PHPjc/445111.html

tru​​ehttp://www.bkjia.com/PHPjc/445111.html技術記事何千ページもある Web サイトへの変更をできるだけ短時間で完了する方法に苦労したことはありますか?それから、この記事の紹介文を読んでください。役立つかもしれません...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。