"downloads", "documentation" => "docs", "mailinglists" => "mailing-lists", "mailinglist" => "mailing-lists", "changelog" => "ChangeLog-4", "gethelp" => "support", "help" => "support", "unsubscribe" => "unsub", "subscribe" => "mailing-lists", "logos" => "download-logos", "README.mirror" => "mirroring", // backward compatibility "dochowto" => "phpdochowto", # manual shortcuts "ini" => "configuration", "install" => "installation", "intro" => "introduction", "whatis" => "introduction", "whatisphp" => "introduction", "what_is_php" => "introduction", "windows" => "install.windows", "win32" => "install.windows", "globals" => "language.variables.predefined", "register_globals" => "security.registerglobals", "registerglobals" => "security.registerglobals", "gd" => "image", "tut" => "tutorial", "tut.php" => "tutorial", // for backward compatibility with PHP page! "faq.php" => "faq", // for backward compatibility with PHP page! "bugs.php" => "bugs", // for backward compatibility with PHP page! "bugstats.php" => "bugstats", // for backward compatibility with PHP page! "icap" => "mcal", // mcal is the successor of icap # external shortcut aliases ;) "projects.php" => "projects", // for backward compatibility with PHP page! ); $external_redirects = array( "php4news" => "http://cvs.php.net/co.php/php4/NEWS?p=1", "projects" => "http://freshmeat.net/browse/183/", "pear" => "http://pear.php.net/", "bugs" => "http://bugs.php.net/", "bugstats" => "http://bugs.php.net/bugstats.php", ); // ============================================================================ // "Rewrite" the URL, if it was a shortcut if (isset($uri_aliases[strtolower($URI)])) { $URI = $uri_aliases[strtolower($URI)]; } // ============================================================================ // Redirect if the entered URI was a PHP page name (except the books page, // which we display in the mirror's language or the explicitly specified // language [see below]) if ($URI != 'books' && file_exists("$DOCUMENT_ROOT/$URI.php")) { mirror_redirect("/$URI.php"); } // ============================================================================ // Execute external redirect if a rule exists for the URI if (isset($external_redirects[strtolower($URI)])) { mirror_redirect($external_redirects[strtolower($URI)], TRUE); } // ============================================================================ // Try to find the URI as a manual entry require "manual-lookup.inc"; if (strchr($URI, '/')) { // Find language and function name part (eg. hu/ini) list($lang, $function) = explode('/', $URI, 2); $function = strtolower($function); $lang = strtolower($lang); // Proper case for Brazilian Portuguese if ($lang == 'pt_br') { $lang = 'pt_BR'; } // Transform function name, so it can be a shortcut if (isset($uri_aliases[$function])) { $function = $uri_aliases[$function]; } } else { $function = strtolower($URI); } // ============================================================================ // Quick access to revcheck output, build logs, books for various languages and // the PHP Documentation Howto for backward compatibility [breaks left out intentionally] switch ($function) { case "rev" : mirror_redirect("/manual/$lang/revcheck.html.gz"); case "blog" : mirror_redirect("/manual/$lang/build.log.gz"); case "books" : mirror_redirect("/books.php?type_lang=PHP_$lang"); case "phpdochowto" : mirror_redirect("/manual/howto/index.html"); } // ============================================================================ // Try to find the page using this language as a manual page (lang is the language // from the URI, or the default language if it was not there in the URI $try = find_manual_page($lang, $function); if ($try) { mirror_redirect($try); } // ============================================================================ // If no match was found till this point, the last action is to start a // search with the URI the user typed in mirror_redirect('/search.php?show=manual&lang=' . urlencode($lang) . '&pattern=' . urlencode($URI)); // A 'good looking' 404 error message page function make404() { global $REQUEST_URI; header('Status: 404 Not Found'); header("Cache-Control: public, max-age=600"); commonHeader('404 Not Found'); echo "

Not Found

\n"; echo "

The page " . htmlspecialchars($REQUEST_URI) . " could not be found.

\n"; commonFooter(); exit; } ?>