<?php// Direct Link is technology used for permanent link into deep place of the web.// This script is opened when mod_rewrite gets url with no page but with some// parameter (query string, separated by ?). The web is trying to find// script with the best language (for example DirectLink.en.php). Those scripts// are wrappers only. We can then look which language was used and generate// the right language version of link or selection.//// For example www.mlab.cz?xxx//// If there is invalid keyword (xxx in the example above) the script generates// selecteion HTML page (with table of posibilities). If the keyword is valid// (found in a list) then the page is automatically redirected to the right// place. We try to use user's prefered language.//// In the file DirectLink.inc there is list of keywords and links to go.//// Written by (c)miho2007 for www.mlab.cz// Clear variablesunset($Redirect);unset($RedirectUpper);unset($RedirectToPage);unset($Lang);// Include redirect definitions (as an array)include_once("DirectLink.inc");// Make all keywords upcaseforeach($Redirect as $Key => $Value){$RedirectUpper[strtoupper($Key)]=$Value;}// Process language (extract lang from the name of the script)$Lang=$_SERVER[SCRIPT_FILENAME];$Lang=preg_replace("/(?:.+)\.(.+)\.(.*)/i","$1",$Lang);if ($Lang==$_SERVER[SCRIPT_FILENAME]) $Lang="";// Find redirect$RedirectToPage=$RedirectUpper[strtoupper(urldecode($_SERVER[QUERY_STRING]))];// If not found -> list all posibilitiesif ($RedirectToPage==""){// Template File Nameif ($Lang=="")$Lang="en";$FileName="DirectLink.$Lang.tmpl";// Read Template$Template=@file($FileName);// Trim Linesif ($Template<>FALSE){foreach($Template as $Key => $Line){$Template[$Key]=rtrim($Line);}$Template=implode("\n",$Template);}// Read parameters from Template// <<DIRECTLINK Rychlý odkaz>>$TextDL="";if (preg_match("/.*<<DIRECTLINK +(.*)>>/i",$Template,$Matches)){$TextDL=$Matches[1];unset($Matches);}$Template=preg_replace("/.*<<DIRECTLINK +.*>>.*\n/im","",$Template);// <<REDIRECTION Přesměrování>>$TextREDIR="";if (preg_match("/.*<<REDIRECTION +(.*)>>/i",$Template,$Matches)){$TextREDIR=$Matches[1];unset($Matches);}$Template=preg_replace("/.*<<REDIRECTION +.*>>.*\n/im","",$Template);// Find <<TABLE>>$Indent="";if (preg_match("/( *)(<<TABLE>>)/i",$Template,$Matches)){$Indent=$Matches[1];unset($Matches);}// Generate List (table)$Table = "<table>\n";$Table.=$Indent." <tr>\n";$Table.=$Indent." <th> $TextDL </th>\n";$Table.=$Indent." <th> $TextREDIR </th>\n";$Table.=$Indent." </tr>\n";foreach($Redirect as $Key => $Value){$Path=$Value;if ($Lang<>"")if (file_exists($_SERVER["DOCUMENT_ROOT"].$Path.".".$Lang.".html"))$Path.=".".$Lang.".html";$Table.=$Indent." <tr>\n";$Table.=$Indent." <td> <a href=\"$Path\">$Key</a></td>\n";$Table.=$Indent." <td> $Value </td>\n";$Table.=$Indent." </tr>\n";}$Table.=$Indent."</table>\n";// Put it into Templateif ($Template<>"")print str_ireplace("<<TABLE>>", $Table, $Template);elseprint $Table; // We have No Template// Finishedreturn 0;}else{// We have redirectionif ($Lang<>"")if (file_exists($_SERVER["DOCUMENT_ROOT"].$RedirectToPage.".".$Lang.".html"))$RedirectToPage.=".".$Lang.".html";}// Redirect pageheader("HTTP/1.1 301 Moved Permanently");header("Location: ".$RedirectToPage);header("Connection: close");?>