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 = なしを設定
isBuildFile の場合
ArtList.FileName=strFileName
ArtList.Directory="猫"
ArtList.Save
の場合は終了
この処理の後、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);
}