站点图标 西部盒子博客

IIS8.5下wordpress伪静态设置非默认文章类型报404的处理方法

《IIS8.5下wordpress伪静态设置非默认文章类型报404的处理方法》

无独有偶,一位在用IIS8.5跑wordpress网站的朋友找到我,说处理数据迁移的过程中从win2003的环境迁移到了win2012后,出现“部分链接”报404的问题;

IIS8.5 很牛逼的赶脚;不过跑wordpress 再牛逼的IIS 也干不过linux下的nmp;

今天要说的问题依然奇葩:

IIS8.5下配置了伪静态后,正常的文章分类、文章标签、文章内容页面都能正常打开,而网站有一个产品的大分类是链接形式是:/portfolio-category/xxxxxxx    直接报404,然而这个分类下的产品内容页又能正常打开,链接格式如:/product/xxxxxx

仔细查看他的伪静态规则后,发现是伪静态内category关键词冲突导致的报404

原来的伪静态规则如下:

[crayon-673f2e27a6340607828675/]
从这里我们可以看到,这个规则对分类和标签进行了单独处理;刚好我们报404的链接的里带有category的关键词,就用了处理分类的重写规则来处理,这样就直接导致了404错误;

我们修改过的伪静态URL重写规则如下:

[crayon-673f2e27a634a467911601/]
其实我们的处理思路很简单,就是说不对TAG和分类做单独处理,像apache或者nginx一样,把所有的非文件、非目录直接交由wordpress根目录的index.php来处理。

PS

:以上规则可能会出现中文URL 报错的情况;IIS升级到8.5后不知道是否支持中文URL ,这个没有时间亲测;有试过的小伙伴,请告知我一下。
退出移动版