iis 404不用url rewrite组件也可以实现rewrite功能:原来不是很新鲜的技术

前不久无意中看到说iis服务器,即使不用rewrite组件,也可以实现rewrite功能,是借助404页面的一个巧妙应用,把所有页面都导向404页面,再由404载入相应的重写目标文件请求,因为使用linux+apache主机,没必要搞这东西,就没有仔细看这个功能的具体实现代码,但还是感觉到很新奇。而且那篇帖子的作者说是看到某个国外技术文章里讲的,借鉴来。

刚才,十分钟前,偶然看wordpress官方网站里的说明文档,发现了在wordpress里早就应用这一技术了:

wordpress管理后台-设置-固定链接

“WordPress 允许您更改默认的链接形式,以此提高 URLs 的可读性和对搜索引擎的友好程度。参考

 这里的“参考”链接里面就有以下一段:

  • Apache web server with the mod_rewrite module
  • Microsoft IIS 7+ web server with the URL Rewrite 1.1+ module and PHP 5 running as FastCGI
  • possibly Microsoft IIS 6+ using a 404 handler or Mod-Rewrite Pro
  • Lighttpd using a 404 handler or mod_rewrite or mod_magnet (see External sources)
  •  讲得很明白,404 handler 也可以实现,

    1 <?php
    2 $qs = $_SERVER['QUERY_STRING'];
    3 $pos = strrpos($qs, '://');
    4 $pos = strpos($qs, '/', $pos + 4);
    5 $_SERVER['REQUEST_URI'] = substr($qs, $pos);
    6 $_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
    7 include('index.php');
    8 ?>

    看来还是老外的技术牛人多,老外的文章很多时候更有借鉴价值

    发表评论?

    1 条评论。

    1. 不清楚它是什么时候提出来,好几年前我在csdn就提出过用404错误映射到URL来处理404错误,从而完成ISAPI Rewrite的功能

    发表评论