导航

狮子的网志

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

HOW TO:PHPWind使用更短的伪静态URL呈现。

PHPWind 开启伪静态之后,在访问某些页面时显得URL非常之长,例如你访问某个贴子的第二页可能是这样的地址:http://www.jijianying.com/read-htm-tid-99-page-2.html ,是不是可以设置成这样的地址:http://www.jijianying.com/read-tid-99-page-2.html 呢?答案是肯定的,你点击一下,就可以验证。那么怎么样才可以做到呢,是不是只需要在静态目录部署的“静态目录”框里默认的-htm-改成单一个杠号-就可以了呢,答案是不行,还需要要另外再做点小改动。在你已经成功部署好默认的伪静态前提下,下边我谈一谈更短的伪静态URL如何实现:

1、进入后台》核心设置》静态目录部署》,在“静态目录部署”、“静态目录”框内填写一个杠号-。现在刷新前台,发现页面连接的输出已经变成了简短的了,但是一点击,发现是404错误,无法打开,于是就要进行下边的设置了。

2、……

如何正确使用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 规则本身的格式问题也是你失败时最值得注意的地方。

分页:[«]1[»]

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

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