Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: dimitrix en 4 Enero 2010, 21:27 pm



Título: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: dimitrix en 4 Enero 2010, 21:27 pm
Pues eso, me gustaría saber como se puede hacer para poner:

http://foro.elhacker.net/php-b68.0/

En vez de

http://foro.elhacker.net/index.php?top=6.0

Por que está claro que no es una carpeta por subforo ni por post.

Un saludo y muchas gracias.


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: :ohk<any> en 4 Enero 2010, 21:35 pm
Pues, usando Pretty Urls.  ;)

Saludos


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: dimitrix en 4 Enero 2010, 21:55 pm
Pues, usando Pretty Urls.  ;)

Saludos

No me refiero en SMF, sino en general.


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: raul338 en 4 Enero 2010, 22:20 pm
Pones el "index" como documento para errores 404, entonces "spliteas" (separas) el REQUEST_URI con "/"

miweb.com/tv/sanyo

en

$url[0]="miweb"
$url[1]="tv"
$url[2]="sanyo"

De ahi vos analizas y mostras lo que tengas que mostrar ;-) (no te pongo codigo de ejemplo porque mucho tiempo no tengo y no tengo si quiera donde probarlo :-/)


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: dimitrix en 4 Enero 2010, 22:22 pm
Raul... pero una web pequeñita está bien, pero yo hablo de un proyecto, además que depende de muchas cosas si es Apache, I2S, o el propio navegador se puede cagar, gracias de todos modos^^


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: raul338 en 4 Enero 2010, 22:25 pm
Raul... pero una web pequeñita está bien, pero yo hablo de un proyecto, además que depende de muchas cosas si es Apache, I2S, o el propio navegador se puede cagar, gracias de todos modos^^

Se puede configurar en Apache o IIS, pero vos sos el que tenes que implementar todo el "procesamiento" :P ademas te sirve muchas cosas, como modulos por ej


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: dimitrix en 4 Enero 2010, 22:33 pm
estuve leyendo sobre .htaccess el problema es que si el server no es mio no puedo tocar ciertas cosas del PHP, pero enu... de todos modos, preguntaba por si alguien lo hizo y puede ayudar^^


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: dimitrix en 4 Enero 2010, 22:36 pm
Vale ya está, gracias igualmente^^


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: dimitrix en 4 Enero 2010, 23:11 pm
Bueno, voy hacer una aplicación tipo "Pretty URLs" para que se puede aplicar a todas las webs^^ con un simple "include" añadiendo unos archivos creados por mi (todo mu simple), lo digo por que si alguien lo quiere que me diga por privado y si el mod de PHP me deja lo publicaré aquí^^.


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: raul338 en 4 Enero 2010, 23:19 pm
Bueno, voy hacer una aplicación tipo "Pretty URLs" para que se puede aplicar a todas las webs^^ con un simple "include" añadiendo unos archivos creados por mi (todo mu simple), lo digo por que si alguien lo quiere que me diga por privado y si el mod de PHP me deja lo publicaré aquí^^.
publicalo y sera como aporte, de hecho yo tambien estoy trabajando en lo mismo, ya se como hacerlo bajo IIS 5.0 (y en adelante :P) cosa que en google no encontre mucho (ejem.....sin usar software externo)


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: dimitrix en 4 Enero 2010, 23:35 pm
Amm...  tengo un bit del far... a lo que iba, yo no uso nada externo, más bien lo he programado en PHP con unas modificaciones en el .htaccess


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: raul338 en 4 Enero 2010, 23:38 pm
Amm...  tengo un bit del far...
:huh:

a lo que iba, yo no uso nada externo, más bien lo he programado en PHP con unas modificaciones en el .htaccess
Claro, yo lo que hice es una muestra en PHP para Urls amigables en IIS, que segun "google" se puede lograr con dlls externas, lo mio es puro ^^ :xD


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: dimitrix en 5 Enero 2010, 01:32 am
Pero como los vas a liberar si es por librerías?


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: raul338 en 5 Enero 2010, 03:27 am
librerias? :huh:

Son solo propiedades y unas lineas en php :P


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: [u]nsigned en 7 Enero 2010, 00:00 am
mod_rewrite (http://blog.unijimpe.net/como-utilizar-mod_rewrite/)


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: ~ Yoya ~ en 7 Enero 2010, 00:21 am
Eso era xD!


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: raul338 en 7 Enero 2010, 00:27 am
En iis poner el archivo para mostrar ante error 404 (despues lo explico) y ponerle de contenido esto:

Código
  1. <?php
  2. $ruta = $_SERVER["QUERY_STRING"];
  3. //echo "<b>Ruta completa:</b> ".$ruta."<br />\n";
  4.  
  5. if (!isset($ruta)) {
  6.   echo "Mostrar index común\n";
  7.   // include("indice.php");
  8. } else {
  9.   $valores = explode("/", $ruta);
  10.   //echo "Modulo: ".$valores[3]."<br />\n";
  11.  
  12.   unset($_GET);
  13.  
  14.   $max = count($valores);
  15.   for ($i=4; $i < $max; $i++) {
  16.      $urlFinal .= ($i > 4) ? "&" : "";
  17.      if (strpos($valores[$i], '-') === false) {
  18.         //echo "Parametro ".($i-3).": ".$valores[$i]."<br />\n";
  19.         $_GET[$i-3] = $valores[$i];
  20.      } else {
  21.         $subParametros = explode("-", $valores[$i], 2);
  22.         //echo "Parametro ".$subParametros[0]." (".($i-3)."): ".$subParametros[1]."<br />\n";
  23.         $_GET[$subParametros[0]] = $subParametros[1];
  24.         eval("$".$subParametros[0]."='".$subparametros[1]."';");
  25.      }
  26.   }
  27.  
  28.   if (file_exists($valores[3].".php"))
  29.      include($valores[3].".php");
  30.   else
  31.      die ("No se encontro el modulo ".$valores[3]." (a.k.a 404)");  // Cambiarlo por un documento 404
  32. }
  33. ?>
  34.  

Es lo que hize, se puede mejorar y se debe modificar para ciertas cosas, pero a alguno le va a server ;-D

NOTA: lo estoy arreglando, y le quiero poner (asi como el mod_rewrite) la posibilidad de aceptar expresiones regulares  ;)


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: satan69 en 8 Enero 2010, 05:44 am
muy facil.. usa la carpeta donde tienes el portal y crea este archivo .htaccess despues pones este codigo:

RewriteEngine on

Rewriterule ^articulo/(.+)/(.+) articulo.php?id =$1&title=$2

Con estas dos líneas indica que se reescriba la siguiente regla: Cuando se solicite esta url: articulo/(.+)/(.+) se mostrará el contenido de la página: articulo.php?id =$1&title=$2. Es decir, la variable $1 vendrá en el primer paréntesis, mientras la variable $2 vendrá en el segundo paréntesis.

Por ejemplo, cuando uno se dirije a la página articulo/933/esta-es-una-url-amigable, el servidor lo procesa como si se estuvieran enviando las variables la página articulo.php?id=933&title= esta-es-una-url-amigable.

y asi podes crear las url amigables que quieras...



saludos xD


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: дٳŦ٭ en 8 Enero 2010, 21:54 pm
Código
  1. RewriteCond %{REQUEST_URI} !/upload/.*
  2. RewriteRule (\w+)/(\w+)? index.php?action=$1.$2 [L]
  3.  

Mod_rewrite


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: electronik_0 en 11 Enero 2010, 05:40 am
busca sobre .htaccess para cambiar el tipo de url en tu web
siempre y cuando dispongas del modulo mod_rewrite


Título: Re: Como hacer /una/palabra/ en vez de ?1=una&2=palabra
Publicado por: dimitrix en 14 Enero 2010, 00:24 am
Aix... creo que lo hice un poco diferente  :-X

No se si está mejor o peor, pero funciona genial y ya es... ya os lo pondré cuando lo encuentre...