News:

Wondering if this will always be free?  See why free is better.

Main Menu

Ayuda con URL amigables

Started by Tokzu, August 21, 2014, 03:48:17 PM

Previous topic - Next topic

Tokzu

Buenas,

Pues hasta hace poco en mi foro tenía instalado SimpleSEF para estilizar las url, pero como a cada rato me llenaba el log de errores (y aparte de que ya no tiene soporte) decidí quitarlo, quise pasarme a PrettyURL pero la forma en que estiliza las url de los temas y foros (nombre-del-foro/nombre-del-tema.html) no me gustó ya que yo quiero que quede la URL como topic-1.0.html, así que decidí activar la opción de "Usar URLs amigables para los motores de búsqueda" en la administración y ahora las url quedan como index.php/board,1.0.html y index.php/topic,1.html.

Lo que ahora quiero es que en la parte de board,1.0.html y index.php/topic,1.html en lugar de la coma sea un guión bajo para que queden así: index.php/board_1.0.html y index.php/topic_1.html y si es posible quitar el index.php, gracias. U^^
"I don't need a knight in a shinny armor, I need a angel in a trench coat"

My mods:

vicram10

mm es haciendo unas cuantas ediciones en el querystring de SMF, mm.. puede ser que Suki pueda darte una mano pero si fuera por mi, me quedo con el default para evitar problemas

Tokzu

Lo quiero así para conservar la forma de las url que tenía SimpleSEF, pero bueno ya logré resolverlo, dejo cómo lo hice. =P

Code (Buscar en Subs.php) Select
function fix_redirect_sid__preg_callback($matches)
{
global $scripturl;
return $scripturl . '/' . strtr($matches[1], '&;=', '//,') . '.html?' . SID . (isset($matches[2]) ? $matches[2] : '');
}

function fix_redirect_path__preg_callback($matches)
{
global $scripturl;
return $scripturl . '/' . strtr($matches[1], '&;=', '//,') . '.html' . (isset($matches[2]) ? $matches[2] : '');
}


Code (Reemplazar con) Select
function fix_redirect_sid__preg_callback($matches)
{
global $boardurl;
return $boardurl . '/' . strtr($matches[1], '&;=', '//_') . '.html?' . SID . (isset($matches[2]) ? $matches[2] : '');
}

function fix_redirect_path__preg_callback($matches)
{
global $boardurl;
return $boardurl . '/' . strtr($matches[1], '&;=', '//_') . '.html' . (isset($matches[2]) ? $matches[2] : '');
}


Lo que hice fue sólo cambiar la variable $scripturl por $boardurl, y para cambiar la coma cambié la parte de '//,' por '//_', y para indicarle a smf hacia dónde tenían que apuntar las url modificadas en mi .htaccess agregué lo siguiente:

Code (Agregar en .htaccess) Select
RewriteEngine On
RewriteBase /
RewriteRule ^board_([0-9]+)\.0.html$ index.php?board=$1 [R=301,L,QSA]
RewriteRule ^topic_([0-9]+)\.(.*).html$ index.php?topic=$1 [R=301,L,QSA]
"I don't need a knight in a shinny armor, I need a angel in a trench coat"

My mods:

Suki

Podría haber instancias en las que $boardurl puede no ser la url real pero son contadas y no creo que vayas a tener problemas.  SimpleSEF no está descontinuado, es simplemente que no he tenido tiempo para actualizarlo, ¿podrías decirme cuáles eran los errores que te daba?
Disclaimer: unless otherwise stated, all my posts are personal and does not represent any views or opinions held by Simple Machines.

Tokzu

Ah, ya veo. Pensé que ya no tenía mantenimiento ya que el tema principal está cerrado y el mod retirado de SMF. xP Por cierto, lo descargué de aquí.

Para empezar, olvidé poner que mi SMF es 2.0.8, y del error eran 4, el primero era en mi error log del hosting me lo llenaba, no recuerdo exactamente lo que decía, pero era sobre que en la línea 135 de SimpleSEF.php la variable $_SERVER['QUERY_STRING'] no estaba definida.

El segundo con la imagen de verificación que deja de mostrarse, hice los cambios indicados aquí pero seguía sin mostrarse.

El tercero era con url de la administración, al principio lo tenía configurado para que no la convirtiera, después me arrepentí y lo puse en la lista de acciones a convertir pero se seguía mostrando igual con la URL normal de SMF y si escribía en el navegador "miforo.com/admin" me redirigía a miforo.com/index.php=action=admin.

Y el cuarto era cuando quería crear una encuesta (no agregar una encuesta a un tema ya creado) no reconoce la url convertida, no recuerdo bien el error pero deja que instale en localhost y reproducir el error y así informarte bien.
"I don't need a knight in a shinny armor, I need a angel in a trench coat"

My mods:

Suki

Ok, gracias lo tendré en cuenta.
Disclaimer: unless otherwise stated, all my posts are personal and does not represent any views or opinions held by Simple Machines.

Advertisement: