wez Thu Feb 5 09:57:34 2004 EDT
Modified files: /livedocs error.php Log: Make this work under IIS http://cvs.php.net/diff.php/livedocs/error.php?r1=1.4&r2=1.5&ty=u Index: livedocs/error.php diff -u livedocs/error.php:1.4 livedocs/error.php:1.5 --- livedocs/error.php:1.4 Fri Jan 23 09:58:38 2004 +++ livedocs/error.php Thu Feb 5 09:57:33 2004 @@ -18,12 +18,23 @@ // | Handles the 404 error and try to redirect to the good place. | // +----------------------------------------------------------------------+ // -// $Id: error.php,v 1.4 2004/01/23 14:58:38 didou Exp $ +// $Id: error.php,v 1.5 2004/02/05 14:57:33 wez Exp $ + +/* handle IIS style 404 handler */ +if (strncmp($_SERVER['SERVER_SOFTWARE'], "Microsoft", 9) == 0 && + strncmp($_SERVER['QUERY_STRING'], "404;", 4) == 0) { + + $rurl = parse_url(substr($_SERVER['QUERY_STRING'], 4)); + + $_SERVER['REDIRECT_URL'] = $rurl['path']; + if (isset($rurl['query'])) { + $_SERVER['REDIRECT_URL'] .= '?' . $rurl['query']; + } +} if (!empty($_SERVER['REDIRECT_URL'])) { // This is the requested page that caused the error $current_page = substr($_SERVER['REDIRECT_URL'], strlen(WEBBASE)); - if (strncmp(substr($current_page, -5), ".html", 5)) { if (preg_match('|([A-Za-z_]{2,5})/(.*)|', $current_page, $m)) { $current_page = $m[2];