雨田博客

2024
雨田博客
首页 » 技术文档 » 解决EMLOG5.0 IIS下中文标签伪静态无法正常访问

解决EMLOG5.0 IIS下中文标签伪静态无法正常访问

解决EMLOG5.0 IIS下中文标签伪静态无法正常访问。

本来一直用的LAMP组合,因为需要用WINDOWS平台,所以博客也跟着迁移了,新平台采用的WINDOWS 2003 IIS6 FASTCGI PHP5.2.17 MYSQL 5.1.69 ZEND. 不爽的是TMD伪静态有点问题,发现EMLOG程序中路由$_SERVER['REQUEST_URI'] 在此环境下总是无法正确获取到包含中文标签伪静态后的URL(如http://www.23to.com/tag/%E9%9B%A8%E7%94%B0这种格式,总是有问题,如果采用正常传参的形式就能得到),有人说编码转换,有人说IIS下获取不到,搜索一堆,全是抄来抄去的,没有点实质的,最后搞来搞去没想到好的办法。准备放弃的时候PRINT了一下$_SERVER,发现$_SERVER['HTTP_X_REWRITE_URL']这个完整的取到了伪静态后的中文URL,与是改了一下原代码。因为选择EMLOG时间不长,也没太有时间去读代码,怕改动了造成其它不良反应,故只小改了一下。

有遇到同样问题的可以参考一下。这里还是建议去LAMP下使用吧。

 

方法如下:

使用UTF8编辑器,编辑器有很多,就不说了,打开程序include\lib目录下的dispatcher.php

83行后面加上一行代码

public static function setPath(){
        $path = '';
        if (isset($_SERVER['REQUEST_URI'])){
            $path = $_SERVER['REQUEST_URI'];

 

就在$path = $_SERVER['REQUEST_URI'];下面加入

if(stripos($path,"/tag/")!==false){$path = $_SERVER['HTTP_X_REWRITE_URL'];}

 

因为只有标签出现无法正常访问的情况,所以我这里只对路径中包含/tag/的URL起做用,最小化的改动了一下。其它采用中文URL伪静态的我想也一样的道理。因为我没遇到,就暂时不写了,谁有更好的办法也可以评一下。

文章如无特别注明均为原创! 作者: cache, 转载或复制请以 超链接形式 并注明出处 雨田博客
原文地址《 解决EMLOG5.0 IIS下中文标签伪静态无法正常访问》发布于2013年5月8日

分享到:
打赏

评论

游客

看不清楚?点图切换