Los caracteres con acento reciben códigos especiales en el estándar UTF-8, que por lo general es el utilizado por los dominios. (ahora en Argentina se permiten acentos, ñs, y diéresis mediante ISO).
Lo normal en los mod para SEO en español es que se reemplaze las letras con acento por su equivalente sin acento, Ñs a N, etc, lo cual es mejor interpretado por los buscadores.
A continuación te dejo una función para tal motivo, lo único que debes hacer es asegurarte de tratar la cadena con esta función antes de mostrarla:
Código:
<?php
function seo_url($url) {
// Tranformamos todo a minusculas
$url = strtolower($url);
// Añaadimos los guiones
$find = array(' ', '&', '\r\n', '\n', '+');
$url = str_replace ($find, '-', $url);
//Rememplazamos caracteres especiales latinos
$find = array('á', 'é', 'í', 'ó', 'ú', 'ñ');
$repl = array('a', 'e', 'i', 'o', 'u', 'n');
$url = str_replace ($find, $repl, $url);
// Eliminamos y Reemplazamos demás caracteres especiales
$find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
$repl = array('', '-', '');
$url = preg_replace ($find, $repl, $url);
return $url;
}
?>
El único detalle: si el sitio ya está online y tiene las urls con acento indexadas, cambiarlas puede suponer un gran riesgo, pues deberías cambiar todos los vínculos y las páginas pueden quedar inaccesibles. Si lo aplicas, hazlo con mucho cuidado.
saludos!