导航

狮子的网志

狮子的网志 - 对区域经济、区域网站、社区运营、互动营销感兴趣。

« 狮子座2010年星座整体运程:火星点燃活力,重新找回理想为什么叫基建营? »

如何正确使用IIS Rewrite部署PHPWind 在Windows下的伪静态。

自从在某次会上被 PHPWind 现在灌输些东西后,一直想找个时间来体验一下。

PHPWind 7.5 SP3 发布之时,就上了一个站,因为是Windows下的IIS,在进行静态目录部署时出现问题。必须手动在IIS上安装Rewrite模块。于是在Helicon Tech.公司官方网站下载了ISAPI_Rewrite 3 Lite 。安装之后发现该免费版本只可以作用于全局,而无法每个站点独立的配置,放弃之。最后在中国站长网找到一个版本非常不错,支持每个站点根目录放置 httpd.ini 配置文件。经过一翻捣鼓,总算是把伪静态给成功启用了,其中一些注意的地方给大家分享一下,如果你正在做这件事或者会少走点弯路:

1、安装好 ISAPI_Rewrite 0053 并授权之后在你的站点根目录放置一个httpd.ini 并将规则配置好,规则配置格式参照安装目录内的该文件。

2、如果访问伪静态地址还是404错误的话,你就要注意这里了,PHPWind 7.5 SP3 官方提供的 Apache下的默认规则 RewriteRule ^(.*)-htm-(.*)$ $1.php?$2 这在 IIS Rewrite 模块的不同版本下情况使用方法有异。我没有测试哪个版本可以直接使用这条规则,但至少在2.7或者更低的版本下是不行的,需要改成:RewriteRule ^(.*)-htm-(.*)$ $1\.php\?$2  才可成功启用。在找到相关社区的提示后我才想起我的一个程序达人朋友去年帮我解决程序问题时顺便提到,这种Rewrite规则基本就是正则表达式,而正则表达式中特殊符号需要转义,即规则中的点号和问号需要加反斜杠,注意修改配置后需要重启IIS。如果你的配置文件同目录里的 httpd.parse.errors 文件为0字节即没有记录错误的话,应该伪静态就成功了。

3、如果访问伪静态地址还是404错误,那么就应该查看你的Windows日志中的程序日志,注意如果有“无法加载站点/服务的所有 ISAPI 筛选器。因此启动中止。”“HTTP 筛选器 DLL C:\Rewrite\Rewrite.dll 加载失败。数据是错误。”类似的错误那么就应当注意 ISAPI_Rewrite 0053 安装目录的权限问题,以下是网上的说法:“注意 IIS_WPG权限问题,IIS你的站点来宾用户(如果你自定义了)的权限,也有网友提到加载Rewrite的站点需要使用默认进程池”。我遇到的是权限问题,进程池我使用独立进程是没有问题的,你可以作参考。

4、总结起来就是,Rewrite模板的版本和对应的规则问题是我解决问题的关键!低版本的IIS Rewrite 模块在编辑规则时需要使用规范的正则表达式语法,特殊符号需要转义。如果你是从Discuz 的相关帮助页面下载的Rewrite,那里的版本是1.x 的,因也需要规范的 Rewrite 配置文件。另外目录的权限问题和httpd.ini 规则本身的格式问题也是你失败时最值得注意的地方。

  • 相关文章:
  • quote 1.狮子
  • http://www.zaiqiang.com
  • 忘记提供中国站下载的链接了,需要的朋友可此下载:
    http://down.chinaz.com/soft/23336.htm

    如果有什么可以帮到你的话,请留言。Smile
  • 2009-12-19 15:18:44 回复该留言
  • quote 2.娃娃
  • 我用的是Helicon ISAPI_Rewrite,我都调了好几天了,依然是404,都要疯掉了,连原因都找不到,请指点迷津啊
  • 2010-4-14 19:05:15 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-Blog .Theme from Google黑板报 By Washun

工业和信息化部备案编号:湘ICP备10024609号-23. Copyright © 2003-2011 狮子的网志. Some Rights Reserved.

Search

控制面板

网站分类

最新评论及回复

最近发表