Como hacer /una/palabra/ en vez de ?1=una&2=palabra

Iniciado por dimitrix, 4 Enero 2010, 21:27 PM

0 Miembros y 1 Visitante están viendo este tema.

dimitrix

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




raul338

Cita de: dimitrix en  4 Enero 2010, 23:35 PM
Amm...  tengo un bit del far...
:huh:

Cita de: dimitrix en  4 Enero 2010, 23:35 PM
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

dimitrix

Pero como los vas a liberar si es por librerías?




raul338

librerias? :huh:

Son solo propiedades y unas lineas en php :P

[u]nsigned


No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

~ Yoya ~

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

raul338

#16
En iis poner el archivo para mostrar ante error 404 (despues lo explico) y ponerle de contenido esto:

Código (php) [Seleccionar]

<?php
$ruta 
$_SERVER["QUERY_STRING"];
//echo "<b>Ruta completa:</b> ".$ruta."<br />\n";

if (!isset($ruta)) {
   echo 
"Mostrar index común\n";
   
// include("indice.php");
} else {
   
$valores explode("/"$ruta);
   
//echo "Modulo: ".$valores[3]."<br />\n";

   
unset($_GET);

   
$max count($valores);
   for (
$i=4$i $max$i++) {
      
$urlFinal .= ($i 4) ? "&" "";
      if (
strpos($valores[$i], '-') === false) {
         
//echo "Parametro ".($i-3).": ".$valores[$i]."<br />\n";
         
$_GET[$i-3] = $valores[$i];
      } else {
         
$subParametros explode("-"$valores[$i], 2);
         
//echo "Parametro ".$subParametros[0]." (".($i-3)."): ".$subParametros[1]."<br />\n";
         
$_GET[$subParametros[0]] = $subParametros[1];
         eval(
"$".$subParametros[0]."='".$subparametros[1]."';");
      }
   }

   if (
file_exists($valores[3].".php"))
      include(
$valores[3].".php");
   else
      die (
"No se encontro el modulo ".$valores[3]." (a.k.a 404)");  // Cambiarlo por un documento 404
}
?>



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  ;)

satan69

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

дٳŦ٭

Código (apache) [Seleccionar]

RewriteCond %{REQUEST_URI} !/upload/.*
RewriteRule (\w+)/(\w+)? index.php?action=$1.$2 [L]


Mod_rewrite


Con sangre andaluza :)


electronik_0

busca sobre .htaccess para cambiar el tipo de url en tu web
siempre y cuando dispongas del modulo mod_rewrite