ホームページ  >  記事  >  php教程  >  Z-Blog サイト全体の分類ラベルの静的ソリューション

Z-Blog サイト全体の分類ラベルの静的ソリューション

WBOY
WBOYオリジナル
2016-06-21 08:51:361158ブラウズ

Z-Blog は現在、ホームページと記事ページの静的化を実装しており、HTML ファイルを生成できますが、システムの分類ページ、タグ ページ、アーカイブ ページ、および著者ページは静的化されていません。この記事では、非常に簡単な解決策について説明します。カテゴリ ページ、アーカイブ ページ、タグごとに静的 HTML ページを自動的に生成できるため、ユーザーは ASP をサポートしていない Apache などのホストに Web サイトを移行できます。

Z-Blog のカテゴリ ページ、タグ ページ、アーカイブ ページ、および作成者ページはすべて、catalog.asp ファイルを呼び出します。そのため、このファイルが変更されると、ユーザーがこのファイルを呼び出すと、そのページの HTML ファイルが自動的に生成されます。訪問者が特定の時間範囲内でこのファイルを繰り返し読む場合は、ファイルの先頭で静的ファイルを直接使用してシステム リソースを節約できます。

具体的な変更方法は、まずルートの下にディレクトリ cat を作成し、次にエディタを使用して Z-Blog ルート ディレクトリにあるcatalog.asp ファイルを開き、ファイルの先頭に次のコードを追加します。

薄暗いobjFSO

Dim objFile
Dim strFileName
Dim strFileTime
Dim isBuildFile
if Request.QueryString("cate")<>"" then
if Request.QueryString("page")<>""then
strFileName = "cate" + "_" + Request.QueryString("cate") + "_" + Request.QueryString("page") +".html"
それ以外
strFileName = "cate" + "_" + Request.QueryString("cate") + ".html"

の場合は終了 elseif Request.QueryString("tags")<>"" then
if Request.QueryString("page")<>""then
strFileName = "タグ" + "_" + Request.QueryString("タグ") + "_" + Request.QueryString("ページ") +".html"
それ以外
strFileName = "タグ" + "_" + Request.QueryString("タグ") + ".html"

の場合は終了 elseif Request.QueryString("auth")<>"" then
if Request.QueryString("page")<>""then
strFileName = "auth" + "_" + Request.QueryString("auth") + "_" + Request.QueryString("page") +".html"
それ以外
strFileName = "auth" + "_" + Request.QueryString("auth") + ".html"

の場合は終了 elseif Request.QueryString("date")<>"" then
if Request.QueryString("page")<>""then
strFileName = "日付" + "_" + Request.QueryString("日付") + "_" + Request.QueryString("ページ") +".html"
それ以外
strFileName = "日付" + "_" + Request.QueryString("日付") + ".html"

の場合は終了 elseif Request.QueryString("page")<>"" then
strFileName = "デフォルト" + "_" + Request.QueryString("ページ") +".html"
それ以外
strFileName = "default_1" + ".html"
終了 If
isBuildFile = False
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(Server.MapPath(strFileName)) then
Set objFile = objFSO.GetFile(Server.MapPath(strFileName))
strFileTime = objFile.DateLastModified
objFile = Nothing を設定します
If datediff("h",strFileTime,Now()) > 1 then
isBuildFile = True
それ以外の場合
Server.Transfer strFileName
応答.終了

の場合は終了 それ以外の場合
isBuildFile = True

の場合は終了 objFSO = なしを設定

Response.Write ArtList.html 行を見つけて、その後ろに次のコードを追加します:

isBuildFile の場合

ArtList.FileName=strFileName
ArtList.Directory="猫"
ArtList.Save

の場合は終了

このようにして、システムはすべての動的ページに対して静的 HTML ファイルを自動的に生成し、この期間中に呼び出しがあった場合、静的 HTML ファイルはシステム リソースを節約するために自動的にロードされます。

この処理の後、Z-Blog のすべてのカテゴリとタグが静的 HTML ページを生成できるようになります。

静的化後、Z-Blog サイト全体を PHP+Apache ホストに配置できます。具体的な方法は、PHP を使用して ASP を解析するように Apache ホストを構成し、catalog.asp ファイルを編集してそのコードを次のように変更することです。

if (isset($_GET['cate'])) {
 if (isset($_GET['page'])) {
  $strFileName = "cate_".strip_tags(stripslashes(trim($_GET['cate'])))."_".strip_tags(stripslashes(trim($_GET['page']))).".html";
 } else {
  $strFileName = "cate_".strip_tags(stripslashes(trim($_GET['cate']))).".html";
 }
} else if (isset($_GET['tags'])) {
 if (isset($_GET['page'])) {
  $strFileName = "tags_".strip_tags(stripslashes(trim($_GET['tags'])))."_".strip_tags(stripslashes(trim($_GET['page']))).".html";
 } else {
  $strFileName = "tags_".strip_tags(stripslashes(trim($_GET['tags']))).".html";
 }
} else if (isset($_GET['auth'])) {
 if (isset($_GET['page'])) {
  $strFileName = "auth_".strip_tags(stripslashes(trim($_GET['auth'])))."_".strip_tags(stripslashes(trim($_GET['page']))).".html";
 } else {
  $strFileName = "auth_".strip_tags(stripslashes(trim($_GET['auth']))).".html";
 }
} else if (isset($_GET['date'])) {
 if (isset($_GET['page'])) {
  $strFileName = "date_".strip_tags(stripslashes(trim($_GET['date'])))."_".strip_tags(stripslashes(trim($_GET['page'])).".html";
 } else {
  $strFileName = "date_".strip_tags(stripslashes(trim($_GET['date']))).".html";
 }
} else if (isset($_GET['page'])) {
 $strFileName = "default_".strip_tags(stripslashes(trim($_GET['page']))).".html";
} else {
 $strFileName = "../default.html";
}
define("HTML_FILE", dirname(__FILE__)."/".$strFileName);
if (file_exists(HTML_FILE)) {
 echo(file_get_contents(HTML_FILE));
 exit(0);
} else {
 exit(0);
}
 



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。