今天本來在折騰 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 論壇最醒目的地方就有,我就不往過拷了…