今天本来在折腾 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 论坛最醒目的地方就有,我就不往过拷了…