今天本來在折騰 emlog 在 Windows 主機下如何實現偽靜態,因為我的本地是 linux 環境,無法測試其有效性,於是乎我就去叨擾客服了,經過一番云云,發現此方法同樣適用於 WordPress,下面我把實現過程分享出來,希望能對和我情況相同的同學有所幫助。

開啟虛擬主機控制面板,點開 「ISAPI 篩選器設定」,裡面有三個選項:開啟常見系統的 URL 靜態化支援;開啟自定義的 URL 靜態化支援;開啟 ShopEx4.8 的 URL 靜態化支援。

我曾試過第一項:開啟常見系統的 URL 靜態化支援,但木有成功。最後是透過第二項:開啟自定義的 URL 靜態化支援來實現偽靜態的,開啟該項之後,網站根目錄的/others/discuz 下面多出了 ISAPI_RewriteSnapin.dll,Rewrite.dll,error.log , httpd.conf 四個檔案,現在要編輯的是 httpd.conf 檔案,我直接把它全部貼出來,裡面預設就有 301 轉向:

[ISAPI_Rewrite]

# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32

#預設包含了 301 設定,此設定情況下 dreamxyt.net/aa.htm 會 301 跳至 www.dreamxyt.net /aa.htm,將 dreamxyt.net 替換為您自己的域名就能實現自己的域名的 301

RewriteCond %{HTTP:Host} ^dreamxyt.net$

RewriteRule (.*) http://www.dreamxyt.net$1 [NC,R=301]

#Discuz ! x 和 discuz x1.5 偽靜態規則,若不需要或與您的網站程式有衝突可以刪除。 (這裡預設的程式碼我刪除了,下面是 WordPress 專用的)

RewriteRule /avatar/(.*) /avatar/$1 [L]

RewriteRule /sitemap_baidu.xml /sitemap_baidu.xml [L]

RewriteRule /sitemap.xml /sitemap.xml [L]

RewriteRule /sitemap.html /sitemap.html [L]

RewriteRule /favicon.ico /favicon.ico [L]

# For file-based WordPress content (i.e. theme), admin, etc.

RewriteRule /wp-(.*) /wp-$1 [L]

# For normal WordPress content, via index.php

RewriteRule ^/$ /index.php [L]

RewriteRule /(.*) /index.php/$1 [L]

其中的 RewriteRule /avatar/(.*) /avatar/$1 [L];RewriteRule /sitemap_baidu.xml /sitemap_baidu.xml [L] 這兩行是我根據自身實際情況弄的。

第一句的意義是:我的部落格讀者牆採用的是快取頭像機制,快取資料夾就是這個在根目錄的 avatar 。

第二句的意義是:和後面那兩個一樣,只不過是因為我安裝了兩個生成地圖的外掛 (一個谷歌,一個百度),所以需要加上這個。

做完以上操作之後,文章頁,分類頁面均實現了偽靜態,但是中文標籤頁打不開,具體解決方法可以參考這篇文章

Emlog 在 Windows 主機實現偽靜態的方法和這個一樣,偽靜態規則 emlog 論壇最醒目的地方就有,我就不往過拷了…