Foros del Web » Programando para Internet » PHP »

$_GET con el motor de busquedas de google

Estas en el tema de $_GET con el motor de busquedas de google en el foro de PHP en Foros del Web. Hola! He visto por Google muchas Webs con GET en su url tal.com/index.php?nose=tal&sitio=web Yo uso una página (archivo) que tiene GET, lo que pasa es ...
  #1 (permalink)  
Antiguo 20/03/2008, 11:18
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 17 años
Puntos: 4
Pregunta $_GET con el motor de busquedas de google

Hola!

He visto por Google muchas Webs con GET en su url

tal.com/index.php?nose=tal&sitio=web

Yo uso una página (archivo) que tiene GET, lo que pasa es que google sólo "coge" la principal, que se llama tipos.php.

Entonces quería saber si hay que hacer algo para que salgan todas las páginas de tipos.php en google.

Gracias!
  #2 (permalink)  
Antiguo 20/03/2008, 12:51
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: $_GET con el motor de busquedas de google

estas hablando de URL's amigables, en tu caso la url quedaria asi:
-> tal.com/index.php?nose=tal&sitio=web
-> tal.com/tal/web

aqui te dejo un par link que te pueden ayudar a entender mejor:
http://www.mod-rewrite-wizard.com/
http://www.peoplecnc.com/ayuda_mod_rewrite.html

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #3 (permalink)  
Antiguo 20/03/2008, 17:18
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 17 años
Puntos: 4
Re: $_GET con el motor de busquedas de google

Muchas gracias, ya funciona.

El problema es que uso un formulario, entonces quería saber si es posible que la URL dinámica (tal.com/index.php?letra=b&numero=3) pase a estática (tal.com/b/3/) automáticamente

Además, como utilizo la variable $_GET['letra'] pues cuando está en url estática no la reconoce

Muchas gracias.

Última edición por JoniJnm; 20/03/2008 a las 18:13
  #4 (permalink)  
Antiguo 21/03/2008, 07:34
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: $_GET con el motor de busquedas de google

fijate el el link que te di [http://www.mod-rewrite-wizard.com/], lo que debes hacer es crear un archivo llamado .htaccess y le pones lo que el asistente te dice, pero a mi entender (nunca me he metido en esto, es una asignatura que tengo pendiente) no es lo unico que tienes que hacer, hay mas. te sugiero que busques por el foro, hay muchos post sobre el tema.

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #5 (permalink)  
Antiguo 21/03/2008, 08:00
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: $_GET con el motor de busquedas de google

En el .htaccess pones:

Código:
 
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php
Con esto hacemos que toda URL vaya al index.php por lo que el index.php deberá encargarse de todo el trabajo.

Supongamos que tu dominio es http://www.tu-dominio.com (incluye el http://)

entonces vamos al código:

Código PHP:
$miDominio"http://www.tu-dominio.com";
// Sacamos el domino de la URL
$miURL str_replace($miDominio,'',trim($_SERVER['REQUEST_URI']));
// corroboramos que haya valores en la URL
if ($miURL && $miURL != "/")
{
// Separamos los valores de la URL
$miURLseparada explode("/",$miURL);
 
$total count($miURLseparada);
 for(
$i=1$i<$total$i+=2
 { 
 if (
$miURLseparada[$i+1]) // Corroboramos que contenga un valor
 
$_GET[[$miURLseparada[$i]]] = $miURLseparada[$i+1];
 }
 

Eso es todo.
Qué hace este código?
Automáticamente transforma URL como esta:

http://www.tu-dominio.com/articulo/7...loquesea/valor

y la interpreta como si fuera esta

http://www.tu-dominio.com/?articulo=...loquesea=valor

(NO PUEDO HACER QUE EL EDITOR DE ESTE FORO PONGA LA URL DE EJEMPLO COMPLETA Y SIN EL LINK, PERO SI PONES EL RATÓN SOBRE EL LINK LO VERAS COMPLETO EN LA BARRA DE ESTADO)

Los parámetros deben ir emparejados: variable/valor en la URL en cualquier orden y cualquiera sea la variable que serrá bien intepretada.

Espero te sirva. Saludos

Última edición por usermax; 21/03/2008 a las 08:06
  #6 (permalink)  
Antiguo 21/03/2008, 09:01
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 17 años
Puntos: 4
Re: $_GET con el motor de busquedas de google

Muchas gracias

Creo que tuve que decir al principio que está dentro de una carpeta lo que quiero hacer:

Tengo una carpeta en el directorio raíz, y se llama Google.

Dentro de esa carpeta he metido el archivo .htaccess y en él he puesto:

Cita:
Options +FollowSymLinks

RewriteEngine On

RewriteBase /google/

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) google-negro.php
Rewriterule ^(.*)\/(.*)\.html$ google-negro.php?metodo=$1&buscar=&2 [L,NC]
En el rewrite superior se puede ver como son las url's

Entonces en el archivo google-negro.php he puesto lo que me dijiste:

Código PHP:
<?php $miDominio"http://www.jonijnm.es/google";
// Sacamos el domino de la URL
$miURL str_replace($miDominio,'',trim($_SERVER['REQUEST_URI']));
// corroboramos que haya valores en la URL
if ($miURL && $miURL != "/")
{
// Separamos los valores de la URL
$miURLseparada explode("/",$miURL);
 
$total count($miURLseparada);
 for(
$i=1$i<$total$i+=2
 { 
 if (
$miURLseparada[$i+1]) // Corroboramos que contenga un valor
 
$_GET[[$miURLseparada[$i]]] = $miURLseparada[$i+1];
 }
 
}  
?>
Pero me da el error siguiente:

Parse error: syntax error, unexpected '[', expecting ']' in /homepages/13/d227788756/htdocs/google/google-negro.php on line 48

Y la línea 48 dice:

$_GET[[$miURLseparada[$i]]] = $miURLseparada[$i+1];

Como está en una carpeta inferior, quizá da ese error?

Gracias por todo :)
  #7 (permalink)  
Antiguo 21/03/2008, 09:10
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: $_GET con el motor de busquedas de google

es que sobra un corchete [], ponlo asi:
Código PHP:
$_GET[$miURLseparada[$i]] = $miURLseparada[$i+1]; 
saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #8 (permalink)  
Antiguo 21/03/2008, 10:26
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 17 años
Puntos: 4
Re: $_GET con el motor de busquedas de google

Sigue sin existir las variables que cojo con $_GET

Las url son tipo ./google/google-negro.php?metodo=imagenes&buscar=coche

Hice esto:

Código PHP:
<?php
$u 
$_SERVER['REQUEST_URI']; // que es la url de arriba
$site "http://www.jonijnm.es/";

if (
strstr($u"google/google-negro.php?")) { 
//si existe eso entonces la url es estática, (la de imagenes coche)

echo '<script type="text/javascript">';
echo 
'location="'.$site.''.$_GET['metodo'].'/'.$_GET['buscar'].'.html"';
//lo paso a estática -> http://www.jonijnm.es/imagenes/coche.html

echo "</script>";  
}

elseif (!
strstr($u"google/google-negro.ph")) { 
//si no es estática ni el "index" (google-negro.php) es dinámica
$u explode ("/"$u); 
//parto la url, separada por barras

$_GET['metodo'] = $u[1]; 
//el metodo será la parte 1 (imagenes)
$_GET['buscar'] = substr($u[2],0,-5); 
//buscar será la parte 2 (coche.html) menos .html
}
?>
Gracias por todo

Última edición por JoniJnm; 21/03/2008 a las 10:46
  #9 (permalink)  
Antiguo 21/03/2008, 15:33
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: $_GET con el motor de busquedas de google

No amigo.
No te lo toma porque estás trabajando dentro de una carpeta real "google" pero el script te lo toma como una variable.
La solución es sencilla:

Repito cómo lo debes hacer:

1) En el .htaccess pones sólo esto para que funcione correctamente:
Código:
 
 
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) google-negro.php
Para que no tome a la carpeta "google" como una variable la incluimos en la $miDominio, fijate el código.

Código PHP:
$miDominio"http://www.jonijnm.es/google";
// Sacamos el domino de la URL
$miURL str_replace($miDominio,'',trim($_SERVER['REQUEST_URI']));
// corroboramos que haya valores en la URL
if ($miURL && $miURL != "/")
{
// Separamos los valores de la URL
$miURLseparada explode("/",$miURL);
 
$total count($miURLseparada);
 for(
$i=1$i<$total$i+=2
 { 
 if (
$miURLseparada[$i+1]) // Corroboramos que contenga un valor
 
$_GET[$miURLseparada[$i]] = $miURLseparada[$i+1]; // esta corregido tenia [] de más 
 
}
 

Luego a las variabloes las buscar por $_GET.

Por ejemplo, si la URL real es esta:

./google/metodo/imagenes/buscar/coche

A metodop lo accedes asi $_GET['metodo'] y así sucesivamente.

Saludos
  #10 (permalink)  
Antiguo 22/03/2008, 09:57
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 17 años
Puntos: 4
Re: $_GET con el motor de busquedas de google

He probado a poner el .htaccess en el directorio de google, y también en la raíz, pero es que directamente las url's estáticas no las reconoce, como:

jonijnm.es/google/metodo/imagenes/buscar/playa

Así que sino va la url estática no puedo saber si $_GET lo coge bien



Y el código que yo hice, aunque va bien, tarda en cargar mucho la página porque 1º tiene que ir a la dinámica y luego a la estática.

En fin, tendré que dejarlo normal

Gracias por todo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:40.