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