<?php
// /modules.php?name=News&new_topic=12
// /modules.php?name=News&file=print&sid=6590
// /modules.php?name=news&file=article&sid=1012
// /modules.php?name=Search&query=espartaco
// /modules.php?name=News&file=friend&op=FriendSend&sid=6590/abrir-puertos-via-telnet:-nat-add-virtualserver
$tiponame=isset($_GET["name"]) ? $_GET["name"] : null ;
// $tiponame=trim(htmlspecialchars($_GET["name"]))."<br>";
$tipofile=isset($_GET["file"]) ? $_GET["file"] : null ;
$tipotopic=isset($_GET["new_topic"]) ? $_GET["new_topic"] : null ;
$ticodigo=isset($_GET["sid"]) ? $_GET["sid"] : null ;
$tiquery =isset($_GET["query"]) ? $_GET["query"] : null ;
// echo "Zona Comprobacion captura de datos";
// echo "tiponame: $tiponame <br>";
// echo "tipofile: $tipofile <br>";
// echo "tipotopic: $tipotopic <br>";
// echo "ticodigo: $ticodigo <br>";
// echo "tiquery: $tiquery <br>";
if ($tipofile == "friend") { $tipofile = "article"; };
if (($tiponame == "Search") && ($tiquery <> "")) {
?>
<meta http-equiv="REFRESH" content="0;url=/<?php echo "/component/search/?searchword=$tiquery"; ?>">
<?php
};
if (($tiponame == "News") && ($tipotopic <> "")) {
?>
<meta http-equiv="REFRESH" content="0;url=/<?php echo "index.php?option=com_content&view=category&id=$tipotopic&Itemid=101"; ?>">
<?php
};
if ($tipofile == "print") { $tipofile = "article"; };
if ($tiponame == "print") { $tiponame = "News"; };
// echo "<hr>";
// echo "Tras Zona Comprobaciones if";
// echo "tiponame: $tiponame <br>";
// echo "tipofile: $tipofile <br>";
// echo "tipotopic: $tipotopic <br>";
// echo "ticodigo: $ticodigo <br>";
// echo "tiquery: $tiquery <br>";
$tiponame=strtolower ($tiponame);
if ($tiponame <> "news") {
echo '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" dir="ltr">
<head>
<title>404 - Error: 404</title>
<link rel="stylesheet" href="/templates/system/css/error.css" type="text/css" />
<meta http-equiv="REFRESH" content="14;url=https://www.linuxparty.es">
</head>
<body>
<div class="error">
<div id="outline">
<div id="errorboxoutline">
<div id="errorboxheader">404 - Artículo no encontrado</div>
<div id="errorboxbody">
<p><strong>Es posible que no pueda visitar esta página por: tiponame</strong></p>
<ol>
<li>un marcador/favorito <strong>fuera de fecha</strong></li>
<li>un motor de búsqueda que tiene una lista <strong>fuera de fecha para este sitio</strong></li>
<li>una <strong>dirección mal escrita</strong></li>
<li>usted <strong>no tiene acceso</strong> a esta página</li>
<li>El recurso solicitado no fue encontrado.</li>
<li>Se produjo un error al procesar su solicitud.</li>
</ol>
<p><strong>Por favor, intente una de las páginas siguientes:</strong></p>
<ul>
<li><a href="/index.php" title="Ir a la página de Inicio">Página de inicio</a></li>
<li><a href="/index.php?option=com_search" title="Buscador del sitio">Buscador del sitio</a></li>
</ul>
<p>Si las dificultades persisten, póngase en contacto con el administrador de este sitio..</p>
<div id="techinfo">
<p>Artículo no encontrado</p>
<p>
</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
';
}
if ($tipofile <> "article") {
echo '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" dir="ltr">
<head>
<title>404 - Error: 404</title>
<link rel="stylesheet" href="/templates/system/css/error.css" type="text/css" />
<meta http-equiv="REFRESH" content="15;url=https://www.linuxparty.es">
</head>
<body>
<div class="error">
<div id="outline">
<div id="errorboxoutline">
<div id="errorboxheader">404 - Artículo no encontrado</div>
<div id="errorboxbody">
<p><strong>Es posible que no pueda visitar esta página por: tipofile </strong></p>
<ol>
<li>un marcador/favorito <strong>fuera de fecha</strong></li>
<li>un motor de búsqueda que tiene una lista <strong>fuera de fecha para este sitio</strong></li>
<li>una <strong>dirección mal escrita</strong></li>
<li>usted <strong>no tiene acceso</strong> a esta página</li>
<li>El recurso solicitado no fue encontrado.</li>
<li>Se produjo un error al procesar su solicitud.</li>
</ol>
<p><strong>Por favor, intente una de las páginas siguientes:</strong></p>
<ul>
<li><a href="/index.php" title="Ir a la página de Inicio">Página de inicio</a></li>
<li><a href="/index.php?option=com_search" title="Buscador del sitio">Buscador del sitio</a></li>
</ul>
<p>Si las dificultades persisten, póngase en contacto con el administrador de este sitio..</p>
<div id="techinfo">
<p>Artículo no encontrado</p>
<p>
</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
';
}
// echo "$tiponame -> $tipofile -> $ticodigo";
if ($tiponame == "news") {
if ($tipofile == "article") {
$string = $ticodigo;
$pattern = '/(\d+)\/(\w+)/i';
$replacement = '${1}-$2';
$ticodigo=preg_replace($pattern, $replacement, $string);
$ticodigo = str_replace(":","-",$ticodigo);
// echo "<hr>";
// echo "Tras Zona preformato sin replace";
// echo "string: $string <br>";
// echo "pattern: $pattern <br>";
// echo "tipotopic: $tipotopic <br>";
// echo "ticodigo: $ticodigo <br>";
// echo "replacement: $replacement <br>";
$title = strtolower ($ticodigo);
$titulo = str_replace(" ","-",htmlspecialchars($title));
$titulo = str_replace("(","",$titulo);
$titulo = str_replace("'","",$titulo);
$titulo = str_replace('"',"",$titulo);
$titulo = str_replace(".","-",$titulo);
$titulo = str_replace(",","",$titulo);
$titulo = str_replace("%","porciento",$titulo);
$titulo = str_replace(")","",$titulo);
$titulo = str_replace("?","",$titulo);
$titulo = str_replace("¿","",$titulo);
$titulo = str_replace("/","-",$titulo);
$titulo = str_replace("¡","",$titulo);
$titulo = str_replace(chr(161),"",$titulo); // caracter ¡
$titulo = str_replace(chr(171),"",$titulo); // caracter «
$titulo = str_replace(chr(187),"",$titulo); // caracter »
$titulo = str_replace(chr(225),"a",$titulo); // caracter á
$titulo = str_replace(chr(233),"e",$titulo); // caracter é
$titulo = str_replace(chr(237),"i",$titulo); // caracter í
$titulo = str_replace(chr(241),"n",$titulo); // caracter ñ
$titulo = str_replace(chr(243),"o",$titulo); // caracter ó
$titulo = str_replace(chr(250),"u",$titulo); // caracter ú
$titulo = str_replace(chr(191),"",$titulo); // caracter ¿
$titulo = str_replace(chr(193),"a",$titulo); // caracter Á
$titulo = str_replace(chr(201),"e",$titulo); // caracter É
$titulo = str_replace(chr(205),"i",$titulo); // caracter Í
$titulo = str_replace(chr(209),"n",$titulo); // caracter Ñ
$titulo = str_replace(chr(211),"o",$titulo); // caracter Ó
$titulo = str_replace(chr(218),"u",$titulo); // caracter Ú
$ticodico = $titulo;
?>
<meta http-equiv="REFRESH" content="0;url=/<?php echo "/$ticodico"; ?>">
<?php
} // endif if ($tipofile == "article")
} // endif if ($tiponame == "News")
?>

Comentarios
Esta modificación para versiones PHP 5.3 y superior era muy necesaria,y la adaptación está muy bien hecha.