今天服务器重装系统,又搞了一遍伪静态配置,按照以前的做法,突然不管用了,于是找来以前参照的教程结合自己碰到的问题,详细的把过程梳理一遍才算搞定。
这次我还是用ISAPI Rewrite3这个最常见的插件配置。
步骤1. 下载ISAPI Rewrite3,下载地址【点这里】。远程登录服务器,把插件上传到服务器桌面,双击开始安装,期间一路点下一步,安装到默认目录即可。在我的服务器上默认安装目录为C:\Program Files\Helicon
步骤2. 打开IIS窗口,右键点击网站-打开属性-ISAPI筛选器,看到已自动添加的IISAPI Rewrite3筛选器,点删除
步骤3. 右键点击需要配置伪静态的WordPress网站,打开属性-ISAPI筛选器,点添加。在弹出的窗口中命名ISAPI_Rewrite3;可执行文件就选安装目录下的ISAPI_Rewrite.dll。
添加完毕就是这样的,刚添加完毕优先级应该是未知:
点确定保存
步骤4. 回到第二部的全局网站,右键属性-IISAPI Rewrite选项卡(插件安装完毕后会多出来这个选项卡),点Edit,把以下内容复制进去然后保存:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | RewriteEngine On RewriteCompatibility2 On RepeatLimit 32 RewriteBase # unsupported directive: [ISAPI_Rewrite] # 3600 = 1 hour # unsupported directive: CacheClockRate 3600 # Protect httpd.ini and httpd.parse.errors files # from accessing through HTTP # Rules to ensure that normal content gets through RewriteRule ^/robots.txt /robots.txt [L] RewriteRule ^/sitemap.xml$ /sitemap.xml [L] RewriteRule ^/favicon.ico$ /favicon.ico [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] # For tags RewriteRule ^/tag/(.*) /index.php/?tag=$1[L] |
步骤5. 检查一下IIS的web服务扩展里面,IISAPI Rewrite是否为允许,如不是就设置为允许
步骤6. 资源管理器中打开C:\Program Files\Helicon(也就是安装目录),右键点文件夹ISAPI_Rewrite3,点安全选项卡,给这个文件夹添加everybody用户的读取权限,注意只要读取权限即可,其他都不勾选
点确定保存
步骤7. 重启一下IIS服务,cmd命令行命令:iisreset /restart
步骤8. 文本编辑软件打开wp-includes/class-wp.php
查找代码
1 | $pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : ''; |
改成
1 | $pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], "UTF-8", "GBK"); |
查找代码
1 | list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] ); |
改成
1 | list( $req_uri ) = mb_convert_encoding($_SERVER['REQUEST_URI'], "UTF-8", "GBK"); |
如果不做这一步,win主机上中文伪静态是无法实现的。
步骤9. 打开主题的function.php,添加如下代码:
1 2 3 4 5 6 7 8 9 | function redirect_search() { if (is_search() && !empty($_GET['s'])) { $keywords=mb_convert_encoding( get_query_var('s'), "UTF-8", "GBK" ); $keywords=urlencode( $keywords ); wp_redirect(home_url("/search/").$keywords); exit(); } } add_action('template_redirect', 'redirect_search' ); |
这一步是为给站内搜索添加跳转功能,并且让它在win主机下能支持中文。
步骤10. 进入WordPress后台,配置伪静态,最后保存设置。
至此大功告成。步骤2,3,5,8,9是我踩过的坑,如果配置不成功多半是其中哪一部没做完整,另外配置完成后要重启IIS。写这篇日志以作笔记,如果碰到新的问题我会更新此文。
本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.brain1981.com/76.html。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。
您也可以扫描左边的二维码,关注我们的微信公众号,在微信上查看我们的案例。