IIS7上WordPress中文伪静态404问题

最近在折腾Windows VPS,并且使用IIS 7搭建了网站。使用Wordpress一般都会启用伪静态,wordpress自带IIS的伪静态规则,但是被我发现了一个很严重的问题,那就是URL Rewrite不支持中文,这样中午的标签和中文的分类目录(没指定别名)点击后就会404了。
在网络上搜索了一阵后终于找到了一个比较完美的方案,因为传播比较广,已经找不到原作者了,但还是向原作者表示感谢。

1.创建chineseurl.php文件

首先我们要在Wordpress安装目录下创建chineseurl.php文件,为下一步做准备。

文件内容如下:

2.配置web.config文件

web.config文件是IIS 7中网站的额外配置文件,当然伪静态规则也是写在这里的。
在使用伪静态前先检查下有没有安装URL Rewrite模块,如果没有安装是无法使用的。

如果文件夹下没有web.config文件,最好是使用wodpress生成一下配置文件。即“设置-固定链接”不用修改直接保存就好了。

生成后在web.config中 <rewrite><rules>....</rules></rewrite>中的 <rule name="wordpress" patternSyntax="Wildcard">插入专门的中文重写规则即可:

插入完成后应该是像这样:

保存即可生效,现在再点击中文标签试试?不会404了吧!

小结

此方法比较完美地解决了IIS7中文标签、分类目录显示404的问题,原理其实就是如果匹配到url中有category或tag的话转向到chineseurl.php处理。
其中chineseurl.php其实也就是很简单地修改了get头信息以来解决404的问题。虽然代码简单,但是实现地很完美,而且就算wordpress升级了也不会再次出现404问题了,有这个问题的网站还是推荐使用的

1 条评论

表情
:wink: :roll: :oops: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-? :* :) :( :!: 8-O 8* 8) /:tangled /:spoof05 /:spoof04 /:spoof03 /:spoof02 /:spoof01 /:spoof /:rwt /:rose /:neartears /:like /:lac /:impotence /:hematemesis /:harass /:fade /:doge /:cute /:chin /:candle /:bye /:beautiful /:P-( /:>-| /::| /::Z /::X /::T /::Q /::P /::O /::D /::@ /::> /:::D /::-| /::( /::$ /:--b /:,@P
昵称
  1. TammySogou Explorer Windows 8 x64 Edition

    还是apache好,不用烦恼