WordPress固定链接以及中文链接的解决方案

固定链接不但使文章地址能够美化,而且可以自定义链接内容(发布时间、标题等),有利于搜索引擎理解;同时,可以设置伪静态链接,便于更好的被搜索引擎收录。

Web环境:IIS

一、WordPress后台设置

在后台设置固定链接格式,本例设置选择“自定义结构”,设置为“/%postname%.html”,实际显示效果为“域名+文章标题.html”,以此实现伪静态。

二、配置IIS文件Web.config

IIS添加一条新的重写规则:

            <rule name="WordPress固定链接" patternSyntax="Wildcard">
                <match url="*"/>
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                </conditions>
                <action type="Rewrite" url="index.php"/>
            </rule>

三、解决中文链接访问出现404错误

通过修改代码或安装插件“IIS Chinese Tag Permalink”解决。

经过测试,修改代码方式可以在URL中正确显示中文;使用插件方式虽然能够打开页面,但是URL显示为中文转码后的地址,比较不美观。

这里推荐通过修改代码方式解决:

  • 进入wp-includes目录,编辑class-wp.php文件
  • 找到$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : '';
  • 将第二个$_SERVER['PATH_INFO']替换为mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK')
  • 再找到list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] );
  • $_SERVER['REQUEST_URI']替换为mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK')即可
订阅
提醒
0 评论
内嵌讨论
查看全部讨论