Advertisement:

Author Topic: QueryString.php  (Read 27588 times)

Offline aBsTrAcTo

  • Jr. Member
  • **
  • Posts: 135
  • Gender: Male
QueryString.php
« on: November 08, 2007, 04:31:02 PM »
Bueno. esta falla esta en smf desde hace ya varias versiones.

Aparentemente siempre nos muestra .html (si esta habilitado) Pero "aparentemente" por que siempre nuestra primer visita va a salir mal ya que los enlaces nos los muestra /foro/index.php?PHPSESSID=xxxxxxxx

Cuando se crea la cookie. ahi ya podemos ver html siempre.. elimininas tu cookie y vuelve a salir este detalle.

El problema aqui es. 1.- Como a googlebot no le vas a meter cookie. siempre ira cacheando tus urls con ?board= ?topic=

Las urls que cachea con .html son las que estan añadidas de modo manual en post, plantillas. o enlaces.

Busquen en querystring.php    // Debugging templates, are we?


Y de ahi al final. remplacen por
Code: [Select]
// Debugging templates, are we?

elseif (isset($_GET['debug']))

$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '\?((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e', "'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html\$2\"'", $buffer);



// This should work even in 4.2.x, just not CGI without cgi.fix_pathinfo.

if (!empty($modSettings['queryless_urls']) && (!$context['server']['is_cgi'] || @ini_get('cgi.fix_pathinfo') == 1) && $context['server']['is_apache'])

{

// Let's do something special for session ids!

if (defined('SID') && SID != '')

$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '\?((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e', "'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html\$2\"'", $buffer);

else

$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '\?((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e', "'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html\$2\"'", $buffer);

}



// Return the changed buffer.

return $buffer;

}



?>

Con esto ya tus urls con html seran cacheables.

Tambien es cacheable con sitemaps de googlehttp://www.google.com/webmasters/sitemaps/?hl=es
« Last Edit: November 08, 2007, 04:33:05 PM by aBsTrAcTo »

Offline H@free

  • Sr. Member
  • ****
  • Posts: 814
  • hispa-digital.com
    • www.hispa-digital.com
Re: QueryString.php
« Reply #1 on: November 08, 2007, 06:27:02 PM »
Pero esto funciona con seo4smf ???

http://www.simplemachines.org/community/index.php?topic=203647.msg1294800#msg1294800


Gracias es bueno saber estos datos...

Offline aBsTrAcTo

  • Jr. Member
  • **
  • Posts: 135
  • Gender: Male
Re: QueryString.php
« Reply #2 on: November 08, 2007, 09:40:37 PM »
Con ese mod no hay problema ya que lo modifica

Offline HotJoint

  • SMF Hero
  • ******
  • Posts: 3,697
  • Gender: Male
  • Visita HotJoint.me
    • @HotJoint on Twitter
    • Blog
Re: QueryString.php
« Reply #3 on: November 08, 2007, 10:02:35 PM »
mm no entendi muy bien cual es el problema y en que ayuda la solucion que nos brindaste. podrias explicarle mejor a este noob?
Mi blog personal: HotJoint

Offline aBsTrAcTo

  • Jr. Member
  • **
  • Posts: 135
  • Gender: Male
Re: QueryString.php
« Reply #4 on: November 08, 2007, 11:48:08 PM »
ok.
http://www.campusvirtualsp.org/foros Haz tu primer visita
a cualquier link que des click te va a llevar a
/index.php?PHPSESSID=logenerado&board=27.0

si das despues un click a un tema ya te llevara a la ruta correctamente ejemplo;

http://www.campusvirtualsp.org/foros/index.php/topic,63.0.html

Apartir de esa segunda carga las urls de todo el foro ya se muestran correctamente.

Googlebot nunca ve las urls con .html al menos que sean enlaces en temas, mensajes o externos
http://72.14.253.104/search?sourceid=navclient&hl=es&ie=UTF-8&rls=GGLJ,GGLJ:2006-31,GGLJ:es&q=cache:http%3A%2F%2Fwww.campusvirtualsp.org%2Fforos%2Findex.php fijate en como toma las direcciones sin .html

lo cual afecta para tener nuestro foro bien optimizado.

con modificando el fichero tus direcciones se vuelven cacheables correctamente a como lo puedes ver aquí
http://72.14.253.104/search?sourceid=navclient&hl=es&ie=UTF-8&rls=GGLJ,GGLJ:2006-31,GGLJ:es&q=cache:http%3A%2F%2Fwww.losforosde.com%2Farte%2Findex.php

Offline HotJoint

  • SMF Hero
  • ******
  • Posts: 3,697
  • Gender: Male
  • Visita HotJoint.me
    • @HotJoint on Twitter
    • Blog
Re: QueryString.php
« Reply #5 on: November 08, 2007, 11:57:10 PM »
aaaa ya veo muy util!1 gracias :)
Mi blog personal: HotJoint

Offline el-brujo

  • Jr. Member
  • **
  • Posts: 197
Re: QueryString.php
« Reply #6 on: November 12, 2007, 05:25:07 PM »
bien por tu aprotación aBsTrAcTo.

Pero el $buffer de debug

   elseif (isset($_GET['debug']))

No hace falta tocarlo (creo)

La modificación sería simplemente cambiar:


Code: [Select]
if (defined('SID') && SID != '')
$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '\?(?:' . SID . ';)((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e', "'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html?' . SID . '\$2\"'", $buffer);

Por:


Code: [Select]
if (defined('SID') && SID != '')
$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '\?((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e', "'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html\$2\"'", $buffer);

Y no sé si habría que modificar esta linea:

Code: [Select]
// Do nothing if the session is cookied, or they are a crawler - guests are caught by redirectexit().  This doesn't work below PHP 4.3.0, because it makes the output buffer bigger.
// !!! smflib
if (empty($_COOKIE) && SID != '' && empty($context['browser']['possibly_robot']) && @version_compare(PHP_VERSION, '4.3.0') != -1)
$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '(?!\?' . preg_quote(SID, '/') . ')(\?)?/', '"' . $scripturl . '?' . SID . '&', $buffer);

Y poner el $buffer en .html y sin SID
« Last Edit: November 12, 2007, 05:30:24 PM by el-brujo »

Offline YesteR

  • Semi-Newbie
  • *
  • Posts: 95
  • Gender: Male
  • Www.STunidos.coM.aR || Lideres con diferencia ^^
    • STunidos
Re: QueryString.php
« Reply #7 on: December 03, 2007, 04:26:05 PM »
... Spammer de palo xD

A ver si aprendes a editar un poco los mensajes y dejar de hacer doble post..

Offline aBsTrAcTo

  • Jr. Member
  • **
  • Posts: 135
  • Gender: Male
Re: QueryString.php
« Reply #8 on: December 03, 2007, 09:33:11 PM »
Pues eso lo habia hecho desde hace mucho. Pero volvia a tirarme el mismo error (no cacheables correctamente)

Por eso elimino la linea de
if (empty($_COOKIE) && SID != '' && empty($context['browser'............

Offline H@free

  • Sr. Member
  • ****
  • Posts: 814
  • hispa-digital.com
    • www.hispa-digital.com
Re: QueryString.php
« Reply #9 on: December 28, 2007, 01:00:53 PM »
Había pensado que el seo4 realizaba esto, luego de revisarlo con tiempito no modifica tal modificación...

Lo he realizado y ahora creo que ya lo he solucionado gracias...  ;D

Offline Iscate

  • Jr. Member
  • **
  • Posts: 189
Re: QueryString.php
« Reply #10 on: June 01, 2008, 02:48:18 PM »
por que cuando intento modificar el querry no me funciona, por que cuando copio y intento pegar el texto no me lo copia como esta sino me lo pone todo en una linea, o sea horizontal
« Last Edit: June 01, 2008, 02:50:38 PM by Iscate »

Offline aBsTrAcTo

  • Jr. Member
  • **
  • Posts: 135
  • Gender: Male
Re: QueryString.php
« Reply #11 on: July 05, 2008, 12:02:06 AM »
Creo que algo paso con el style de smf. por que antes creo recordar que si podias copiar y pegar
bien sin esto que comentas.

Por cierto con el mod seo4 no hace falta editar el querry. si lo editas antes de meter el mod.. te dara error siempre hay que instalar el modseo4  con el querry original.

se cachean bien


**   // Do nothing if the session is cookied, or they are a crawler - guests are caught by redirectexit().  This doesn't work below PHP 4.3.0, because it makes the output buffer bigger.
**   // !!! smflib
**   // Debugging templates, are we?
**   elseif (isset($_GET['debug']))
**         $buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '\?((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e', "'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html\$2\"'", $buffer);
**
**   // This should work even in 4.2.x, just not CGI without cgi.fix_pathinfo.
**   if (!empty($modSettings['queryless_urls']) && (!$context['server']['is_cgi'] || @ini_get('cgi.fix_pathinfo') == 1) && $context['server']['is_apache'])
**   {
**      // Let's do something special for session ids!
**      if (defined('SID') && SID != '')
**         $buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '\?((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e', "'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html\$2\"'", $buffer);
**      else
**         $buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '\?((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e', "'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html\$2\"'", $buffer);
**   }
**
**   // Return the changed buffer.
**   return $buffer;
**}
**
**?>

cada ** es un salto de linea.. copia pega y borra los dos **... no hagas el error de borrar todos los *. pues vienen en el codigo... borra los ** (dos asteriscos juntos)

Offline MarioH

  • Full Member
  • ***
  • Posts: 493
  • Gender: Male
  • You! You!
    • AimBox.cl
Re: QueryString.php
« Reply #12 on: July 23, 2008, 06:27:37 AM »
de ninguna forma me funciono.

probe enviando spider a mi web, y siempre entrada con la url larga.  y no pillaba los html

AimBox Comunidad online, Jugos, Anime, Warez.
[Aportes]: Ordenar SubForos || Smiles Tipo IPB || Agreement.txt ||

Offline LogMare

  • Newbie
  • *
  • Posts: 1
Re: QueryString.php
« Reply #13 on: August 22, 2008, 12:05:26 PM »
Excelente  ;)

salu2!!!

Offline Arkangel

  • Jr. Member
  • **
  • Posts: 218
  • Gender: Male
Re: QueryString.php
« Reply #14 on: May 19, 2009, 07:45:55 PM »
al parecer este topic lleva mas 120 dias offline .. alguna solucion?