Gracias por la ayuda de verdad.
Al final lo he sacado haciendo este script:
Código PHP:
$patron = '^[A-Za-z0-9_:]*$';
$valido = array ( $_GET['q'] );
foreach($valido as $v)
echo 'Válido '.(ereg($patron, $v) ? 'si' : '<b>no</b>') . ": $v<br />\n";
El $patron son los carácteres que no queremos que valgan, por eso el ^ *$. Luego voy a preparar un if else que si me devuelve sí haga la redirección y si devuelve no se quede así.
Un saludo