wordpress是php+mysql的开源程序。可以在linux主机上面完美运行。首选当然是linux主机。但是有时候免不了要用win主机来安装wordpress程序,这样就有一些问题,但是都可以解决的。本人目前所用的主机是西部数码win双线主机。下面就所遇到的问题以及解决方法总结一下。

  第一:wordpress固定链接问题

  安装程序后必做的一件事,就是设置固定链接形式。在linux主机下面,一般情况下直接自定义自己喜欢的形势即可,但是在win主机下设置后导致无法访问。比较流行的形势是/%postname%.html和/%post_id%.html。下面是wordpress在win主机下的伪静态规则。

  1.主机支持urlrewrite功能

  下面以西部数码主机为例:

  进入控制面板,点击 ISAPI 筛选器--点击开启自定义URL静态化支持,这个时候通过ftp软件进入网站目录--再打开/others/discuz/httpd.conf文件

  在httpd.conf里面加入以下规则。

  # Protect httpd.ini and httpd.parse.errors files # from accessing through HTTP # Rules to ensure that normal content gets through 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] 有些主机商自定义设置isapi筛选器需要自己上传Rewrite的dll文件(下载见最下面),上传搞定之后,可以将以上代码用记事本保存下来,注意要在文件里面,补充以下内容在以上规则前面

  [ISAPI_Rewrite] # 3600 = 1 hour CacheClockRate 3600 RepeatLimit 32 再把文件后改为httpd.ini然后上传到网站根目录即可。

  2.不支持urlwrite

  这种情况下可以通过设置404页面的方法实现wordpress在win主机下的伪静态。

  新建一个记事本,在里面写入下面代码保存,重新命名为404.php。上传到程序根目录。

  代码:

   进入网站后台管理开启动态404页。

  第二:wordpress中文标签问题

  有的时候以上设置会导致中文标签和一些相关地方的tags等无法找到,解决办法是查找wp-includes/classes-wp.php(wp3.2.1其他版本自己找一下)中如下代码:

  if ( 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'); 最后提供两个文件的下载第一个如果是西数主机在开启isapi自定义之后可以把这个文件直接上传代替以前那个。第二个文件是放到程序根目录的时候的文件。

  PS。2011年10月21日 按照上述方法修改网站为静态化,已经确认无误,url静态与中文tags问题解决。