wez Thu Feb 5 15:35:12 2004 EDT
Modified files:
/livedocs error.php
Log:
IIS tweaks; IIS does not like a # character in a Location header;
it will interpret it as part of the local URL, fail, and serve a
404 instead. Using a ? before it solves this problem.
http://cvs.php.net/diff.php/livedocs/error.php?r1=1.5&r2=1.6&ty=u
Index: livedocs/error.php
diff -u livedocs/error.php:1.5 livedocs/error.php:1.6
--- livedocs/error.php:1.5 Thu Feb 5 09:57:33 2004
+++ livedocs/error.php Thu Feb 5 15:35:12 2004
@@ -18,10 +18,11 @@
// | Handles the 404 error and try to redirect to the good place. |
// +----------------------------------------------------------------------+
//
-// $Id: error.php,v 1.5 2004/02/05 14:57:33 wez Exp $
+// $Id: error.php,v 1.6 2004/02/05 20:35:12 wez Exp $
/* handle IIS style 404 handler */
if (strncmp($_SERVER['SERVER_SOFTWARE'], "Microsoft", 9) == 0 &&
+ isset($_SERVER['QUERY_STRING']) &&
strncmp($_SERVER['QUERY_STRING'], "404;", 4) == 0) {
$rurl = parse_url(substr($_SERVER['QUERY_STRING'], 4));
@@ -48,7 +49,7 @@
if ($db_m[0][1] < 5 || (sqlite_fetch_string(sqlite_unbuffered_query($idx,
"SELECT count(*) FROM searchi WHERE skey='" . sqlite_escape_string($lookup_name) . "'
AND prio=5")) == 1)) {
$current_page = $lang . '/' . $db_m[0][0] . '.html';
if (@file_exists(OUTPUTDIR . '/' . $current_page)) {
- header('Location: ' . WEBBASE . $current_page . '#' .
$db_m[0][0]);
+ header('Location: ' . WEBBASE . $current_page . '?#' .
$db_m[0][0]);
exit;
}
} else {