请选择 进入手机版 | 继续访问电脑版

无忧编程_ASP.NET  / C# / PHP 程序员的软件世界

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 699|回复: 0

IIS7 wordpress配置web.config实现 伪静态的方法

[复制链接]

259

主题

286

帖子

1159

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1159
发表于 2016-3-31 09:48:24 | 显示全部楼层 |阅读模式
本帖最后由 MinTao.Net 于 2016-3-31 10:46 编辑

IIS7 wordpress配置web.config实现 伪静态的方法:
在windows主机下利用IIS7配置web.config文件实现 wordpress Rewrite 伪静态

方法/步骤
1
登陆Wordpress的后台
IIS7 wordpress配置web.config实现 伪静态
2
点选左边选单下的“设置”,然后选“固定链接”
IIS7 wordpress配置web.config实现 伪静态
3
在“常规设置”下选择你想要的伪静态模式
IIS7 wordpress配置web.config实现 伪静态
4
选定之后点“保存更改”完成设置(你会发现Wordpress的安装路径会自动产生web.config文件,或是更新了原有的web.config文件)
注:如果网站根目录没有生成web.config,请手动创建该文件并将添加以下代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
        <system.webServer>
                <rewrite>
                        <rules>
                                <rule name="WordPress" stopProcessing="true">
                                        <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" appendQueryString="true" />
                                </rule>
                        </rules>
                </rewrite>
        </system.webServer>
</configuration>
如果在网站根目录和子目录都安装Wordpress并开启固定链接,那么在子目录站点开启固定链接后,需要修改子目录文件夹内的web.config文件,在<rules>后面添加<remove name="wordpress"/>
在某些版本的Wordpress中, 如果URL含有中文字, 如http://blog.mintao.net/tag/升级, 会出现404页面找不到的错误。你可直接更改源码(更改前请先备份):
只要去找到  wp-includes\classes.php文件(注意,最新版的Wordpress,这个文件已经改名为class-wp.php) ,然后找到以下的或类似的代码:f ( isset($_SERVER['PATH_INFO']) )
        $pathinfo = $_SERVER['PATH_INFO'];
else
        $pathinfo = ";
        $pathinfo_array = explode('?', $pathinfo);
        $pathinfo = str_replace("%", "%25", $pathinfo_array[0]);
        $req_uri = $_SERVER['REQUEST_URI'];

把它替换为:
if ( isset($_SERVER['PATH_INFO']) )
        $pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], "UTF-8", "GBK");
else
        $pathinfo = '';
        $pathinfo_array = explode('?', $pathinfo);
        $pathinfo = str_replace("%", "%25", $pathinfo_array[0]);
        $req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], "UTF-8", "GBK");
大功告成。
更新:分类可以用中文,但是分类的别名必须是字母,否则会报错!


windows .net(C#+MSSQL) linux(php+mysql)  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软件编程 Inc.  

GMT+8, 2017-11-18 12:32 , Processed in 0.152691 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表