WP在IIS下的固定链接设置与中文URL打开404的解决办法

    学无止境 ImbaQ 2577次浏览 0个评论

    感觉WP对windows服务器的支持不太好,网上各位大牛也是建议不要跑在windows+iis上,无赖我只会微软系的一套东西,今天就折腾下IIS的伪静态吧。

    其实在IIS下设置WP的伪静态规则网上也是大把的教程,首先空间得支持rewriter,然后是伪静态规则如下:

    #定义根目录的文件可访问
    RewriteRule /favicon.ico /favicon.ico [L]
    RewriteRule /robots.txt /robots.txt [L]
    RewriteRule /sitemap.xml /sitemap.php [L]
    RewriteRule /xmlrpc.php /xmlrpc.php [L]
    
    RewriteRule /tag/([^/]+)/([^/]+)/?([0-9]+)?/ /index.php?tag=$1&paged=$3 [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]
    

    配置完之后发现URL带中文的都404了,包括分类、标签、标题是中文的都不行,但是初始的hello world又可以正常访问,看来伪静态是配置成功了的,继续解决中文路径的问题:

    现在WP已经升级到4.3版本了,网上的大量复制粘贴流“教程”都还是3.0+的代码,找的我好苦!

    按照网上的各种教程都是行不通,有的作者表示配置成功了,不知道我这什么原因,反正还是不行,只好自己来折腾了。

    在折腾的过程中发现并不是因为中文的url就报404的,因为我设置固定链接为“/%category%/%post_id%.html”,当分类为中文时打开是正常的,而标签有中文时打开的url又是404报错,这样来看应该是在重写URL时候出错了,那就从伪静态规则入手:

    修改tag的规则为:

    RewriteRule /tag/[^/]+)/([^/]+)/?([0-9]+)?/ /index.php?tag=$1&paged=$3 [L]

    修改后中文标签打开正常,中文分类问题依旧,折腾了两个小时也没找到合适的解决方案,看来分类目录还得老老实实的设置别名,设置之后会优先使用英文别名URL,这样就可以正常了!


    发布时又碰到问题,由于我是使用的windows live writer 写作的,发布文章时提示登陆失败,软件的原理是使用了xmlrpc协议,估计是设置伪静态后找不到该文件了,增加一条规则:

    RewriteRule /xmlrpc.php /xmlrpc.php [L]

    测试成功!


    iHomeSoft, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明!
    WP在IIS下的固定链接设置与中文URL打开404的解决办法