Como utilizar MOD_REWRITE

Este artículo ya se encuentra obsoleto.
Para una referencia actual leer: Cómo hacer redireccionamiento temporal o permanente

MOD_REWRITE es un modulo del servidor web Apache que permite crear URL alternativas a nuestras páginas dinámicas de forma que sean mas fáciles de recordar y también mejor indexadas por los buscadores.

Esto nos permite que un URL de la forma:

http://www.sample.com/producto.php?cat=monitor&subcat=lcd

Se pueda acceder mediante:

http://www.sample.com/monitor/lcd/

Como Funciona?
Para utilizar MOD_REWRITE es necesario crear una serie de reglas basadas en Expresiones Regulares el cual permite identificar un determinado patrón y reescribirla. Internamente Apache procesará el URL resultante y se le mostrará al cliente.

Estas reglas se escriben y colocan en un archivo de configuración llamado .htaccess el cual se encuentra en la raíz del servidor donde se quieren aplicar estas reglas.

Utilizando MOD_REWRITE
Lo primero es crear un archivo .htaccess, en el cual incluimos código para activar la opción de reescritura y luego utilizamos el comando RewriteRule en donde pasamos dos parámetros, el primero de ellos es el URL que vamos a reemplazar y el segundo es el URL que utilizaremos de reemplazo.

Luego si deseamos convertir nuestro URL de ejemplo, utilizaremos el siguiente código.

Options +Indexes
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)/(.*)/ products.php?cat=$1&subcat=$2

Nótese que $1 representa la primera coincidencia y $2 la segunda coincidencia buscada en el URL. Ahora hay que notar que esto es para cuando se desea aplicar la regla a un URL que esta en la raiz del servidor. Si nuestro URL esta en una carpeta por ejemplo llamada rewrite, entonces cambiamos el comando RewriteBase que indica la carpeta base a donde se aplicará la reescritura.

Options +Indexes
Options +FollowSymlinks
RewriteEngine on
RewriteBase /rewrite/
RewriteRule ^(.*)/(.*)/ products.php?cat=$1&subcat=$2

Luego si creamos un PHP que imprima las variables que se les pasa por URL, tendríamos el siguiente código de ejemplo.

Categoría: \t" . $_GET["cat"] . "
"; echo "SubCategoría\t: " . $_GET["subcat"] . "
"; ?>

Finalmente podemos ver que podemos obtener el mismo resultado al acceder a las siguientes URLs, las cuales devuelven el mismo resultado, pero obviamente la segunda forma es mucho mas corta y mas fácil de recordar.
http://samples.unijimpe.net/rewrite/products.php?cat=monitor&subcat=LCD
http://samples.unijimpe.net/rewrite/monitor/LCD/

Si desean mas información pueden leer mod_rewrite en la documentación oficial de Apache en donde encontrarán una guía muy detallada de como crear y utilizar reglas para las URLs. Finalmente para los interesados les dejo los archivo fuente de este ejemplo.

Comentarios Total 44 comentarios

Curro
Publicado: 23/01/2008 6:39 am

Muy bueno el tuto, funciona muy bien en mi caso, pero aun tengo un problema:

¿Que sucede si ademas de mostrar la categoria y la subcategoria, en mi web quisiera mostrar solo categoría?. Es decir:

ademas de redireccionar http://www.sample.com/producto.php?cat=monitor&subcat=lcd
quisiera redireccionar tambien
http://www.sample.com/producto.php?cat=monitor

Supongo que sería con:
RewriteRule ^(.*)/ products.php?cat=$1

Pero las dos RewriteRule juntas no me funcionan, por separado si, pero si deseo una de las dos dependiendo de la dirección con la que entre, no me funciona bien y coge la que no es. ¿Como se haría?

Mark
Publicado: 28/02/2008 11:58 pm

Excelente!

Que podria estar pasando si no me funciona haciendolo justo como éste ejemplo, de hecho me muestra el mensaje de «Not Found»

Gracias!

Alquiberia
Publicado: 01/05/2008 12:50 pm

Muy buenas. Tengo una pequeña duda.
Tengo implementado el mod_rewrite en mi web:
http://www.alquiberia.es
Pero tengo un problema cuando supero las 10 variables. Todo funciona perfectamente mientras no supere las 10 variables.
Por ejemplo:
Rewriterule ^([^/]+)-([^/]+)/([^/]+)-([^/]+)/([^/]+)-([^/]+)/([^/]+)-([^/]+)\.html$ index.php?$1=$2&$3=$4&$5=$6&$7=$8 [NC,L]

Funciona perfectamente pero si supero las 9 variables falla y mezcla el valor de las variables.

Alguna sugerencia???

Gracias


[…] ZonaPHP, BaluArt, Unijimpe     Read More    Post a […]

Eddy Luque
Publicado: 27/10/2008 10:50 am

El codigo esta bien .. pero un pregunta .
tengo una site y es administrable .. y ahora que me doy cuenta que en el inicio de logeo del admin los estilos no los reconoce y la parte administrativa se han perdido los estilos…
y al eliminar el htaccess se arregla todo (en el admin) … a que se debe esto …

unijimpe
Publicado: 27/10/2008 10:14 pm

El problema es que la poner el MOD_REWRITE las rutas que utilizas para llamar a los JS o CSS no se reconocen correctamente, para ello debes poner la ruta absoluta de los css y no rutas relativas, es decir en lugar de usar:

<link rel="stylesheet" type="text/css" href="css/styles.css" />

Debes utilizar:

<link rel="stylesheet" type="text/css" href="/admin/css/styles.css" />

Manuel
Publicado: 29/10/2008 4:20 am

Hola,
Fantásticas las explicaciones, pero no consigo solucionar un problema. A ver si algún experto en modrewrite me puede ayudar.

Tengo indexadas en google muchas páginas con las url de esta forma:

http://www.mipagina.com/?num=452&cla=Negocio

el problema es que si alguien entra desde Google con una de estas url obtiene un «página no encontrada». Pues ahora el formato ha cambiado a:

http://www.mipagina.com/?num=452&cla=business

¿Cómo puedo hacer que los que entran con la primera URL sean redirigidos a la nueva URL?

¡Gracias a quien me ayude!

Jose
Publicado: 08/11/2008 12:59 am

Creo que este link te debe funcionar…
http://www.webtutoriales.com/tutoriales/mantenimiento/301-redirect.6.html

Fijate en el redirect 301…

Matias
Publicado: 15/11/2008 11:49 pm

HOla genial todo me saco muchas dudas, y si me abrio la mente con este tutto, gracias

fredy
Publicado: 22/12/2008 2:45 am

Holas amigo de inijimpe espero que al leer este mensajito me puedas ayudar mira lei uno de tus post sobre mod_rewrite pero tngo el problema q mi swf no reproduce cuando uso el mod_rewrite:
la ide original es esta:
http://dedicatusvideos.com/videopostales/videopostal.php?idenvio=9644jYF_rXpxsd4311&depara=fredy-para-lenin

donde me funcioan a la perfeccion mi archivo swf pero esto pongo en el .htaccess
Options +Indexes
Options +FollowSymlinks
RewriteEngine on
RewriteBase /videopostales/
RewriteRule ^(.*)/(.*)\.html$ videopostal.php?idenvio=$1&depara=$2

tambien lo puse asi pero sige igual:
Options +Indexes
Options +FollowSymlinks
RewriteEngine on
RewriteBase /videopostales/
RewriteRule ^(.*)/(.*).html videopostal.php?idenvio=$1&depara=$2

y muestro esto pero aqui no reproduce mi swf no se por que o a que se debe:
http://dedicatusvideos.com/9644jYF_rXpxsd4311/fredy-para-lenin.html

unijimpe
Publicado: 22/12/2008 9:13 am

Hola, el problema es que al hacer uso el MOD_REWRITE los elementos como imagenes y SWFs deben colocarse con rutas absolutas para que puedan mostrarse correctamente. En el ejemplo que me envias has puesto como ruta del SWF:
< param name="movie" value="postalnavidad.swf" />

Entonces lo que debes hacer es reemplazarlo por:

< param name="movie" value="/postalnavidad.swf" />

fredy
Publicado: 22/12/2008 3:18 pm

nada amigo unijimpe ya no se que hacer puse como dijiste «/postalnavidad.swf» tambien «/../videospostales/postalnavidad.swf» asta puse la ruta completa «http://dedicatusvideos.com/videopostales/postalnavidad.swf» y nada no reproduce mi elemento SWF

unijimpe
Publicado: 22/12/2008 4:52 pm

Además de colocar la ruta completa al SWF, debes hacer que las rutas a las que llama el SWF, por ejemplo imágenes o vídeos también sean rutas absolutas.

fredy
Publicado: 22/12/2008 6:22 pm

¿pero es por eso q no me muestra mi swf? por que en ese swf no jala otro video o imagen esta empaquetado en uno solo…

Eddy Luque
Publicado: 14/01/2009 1:49 pm

Gracias por la explicación.
Ahora mi inquietud es lo siguiente:
estoy realizando un clasificado, como haria para poder identificar el pais del usuario y de esta manera poner un subdominio con el pais del visitante + el dominio : peru.clasificados.com.
Hay alguna clase o funcion que pueda usarse .
Gracias de antemano.
Espero que puedan ayudarme.

JavierStudio.net
Publicado: 18/01/2009 1:50 am

soy un programador en php, mi nombre es Javier Urbina, realmente muchas gracias es un simple ejemplo pero con eso me abriste las puertas a todo un nuevo mundo , nunca pense que fueran tan sencillo estuve buscando en internet otros tutoriales sobre esto pero no habia entontrado uno tan sencillo y a las vez ilustrativo , muchas gracias! super secilla la logica , sigue asi !

Gustavo
Publicado: 13/02/2009 8:15 am

Hola tengo el siguiente problema
En mi pagina los usuarios tienen su propio directorio asi

http://www.pagina.com/usuario
http://www.pagina.com/juancho

El problema que como linux es key sensitive si escriben mal, por ejemplo:
http://www.pagina.com/Juancho
http://www.pagina.com/JuAnChO

No llegan nunca a mi pagina como lo resuelvo con mod_rewrite, Gracias

julio
Publicado: 17/02/2009 9:36 am

hola, la verdad que no logro hacer andar esto en mi localhost, primero que nada necesito saber donde pongo el htacces ya que lei por todos lados y en todos veo cosas diferentes, mi ruta en local es esta http://localhost/proyectos/autos-alquiler/src/home/ y ahi es donde levanto mediante base de datos los valores que muestro, al quedar en pantalla el vinculo me queda asi «http://localhost/proyectos/autos-alquiler/src/home/1/economicos/374/1.html».Ahora cuando hago el .htaccess escribo las lineas siguiente:
RewriteEngine On
RewriteBase /proyectos/autos-alquiler/src/home/
RewriteRule ^(.*+)/(.*+)/(.*+)/(.*+)\.html$ /categorias/categorias.php?idm=$1&ref=$2&icat=$3&categoria=$4 [L,NC] »
ya sea le ponga el archivo categoría en la msima carpeta que el index o en otra no funciona, siempre el mismo, not found.

Alguien puede guiarme a lo que estoy haciendo mal, muchas gracias

Amb
Publicado: 01/07/2009 7:25 pm

Mayormente hay errores con el mod_rewrite en local host, instale varios paquetes comoe easyphp pero no me funcionaba bien el mod_rewrite
con el xampp no tube ningun problema y acerca de el .htaccess eso se puede poner en todas las carpetas raiz de tus paginas webs

MIguel
Publicado: 02/09/2009 6:34 am

hola Unijimpe, digamos q yo necesito oviar el .php de un url ejm:

http://www.misitio.com/ver.php?v=123

y quiero eliminar el .php y se vea asi:

http://www.misitio.com/ver?v=123

se puede hacer con rewrite? como? please!

Eddy Luque
Publicado: 16/10/2009 11:43 am

Que tal Gustavo , para evitar eso debes convertir todo a minuscula ,
Otra cosa si usas URL AMIGABLES : Por ejemplo : tienes algo asi : «Prueba de url Amigable 2009» y quieres pasar todo eso como URL AMIGABLE => prueba-de-url-amigables-2009 puedes usar mi funcion …

Aqui te va :
function safename($title){
// reemplazamos todos los caracteres no deseados de una cadena por «-» ;
$title = str_replace(«&», «and», $title);
$arrStupid = array(‘feat.’, ‘feat’, ‘.com’, ‘(tm)’, ‘ ‘, ‘*’, «‘s», ‘»‘, «,», «:», «;», «@», «#», «(«, «)», «?», «!», «_»,
«$»,»+», «=», «|», «‘», ‘/’, «~», «`s», «`», «\\», «^», «[«,»]»,»{«, «}», «», «%», «™»);

$title = htmlentities($title);
$title = preg_replace(‘/&([a-zA-Z])(.*?);/’,’$1′,$title); // get rid of bogus characters
$title = strtolower(«$title»);
$title = str_replace(«.», «», $title);
$title = str_replace($arrStupid, «-«, $title);
$flag = 1;
while($flag){
$newtitle = str_replace(«–«,»-«,$title);
if($title != $newtitle) {
$flag = 1;
}
else $flag = 0;
$title = $newtitle;
}
$len = strlen($title);
if($title[$len-1] == «-«) {
$title = substr($title, 0, $len-1);
}
return $title;
}

Carlos Lopez
Publicado: 08/12/2009 11:55 am

Buenas tardes amigo, Mi problema consiste en redireccionar una aplicación de mi red interna al servidor Web para q esta pueda salir por Internet. Cunado lo intento y me conecto desde otra PC no me reconoce la ip de mi red interna. Como puedo hacer para que la herramienta mod_rewrite cuando un usuario haga una petición por Internet me redireccione al sistema q esta en mi red interna.

Espero su grata respuesta…

Nicolas
Publicado: 20/12/2009 4:41 pm

Hola master!! Me has re ayudado. Mi cuestion era que queria instalar el framework symfony en un directorio compartido, y resulta que como no puedo configurar los virtual host, quedaba la carpeta publica junto con las otras.De esa forma, las url no andaban para nada. Lo soluciones cambiando el rewriteBase a /web.

Grande unijimpe!!

FEDERICO
Publicado: 22/12/2009 3:22 pm

Hola!!
Realmente me ha sido de mucha ayuda
pero mi problema es que tengo que usar el mod en el directorio principal entonces utilizo una variable y si es
RewriteRule ^(.*)$indexx.php?id=$1
El tema es que de este modo si yo entro directo al domino sin mas… (midominio.com) me tira error 404.. lo que es evidente…
pero la regunta es que rule tengo que usar para detectar que no hay variables y mandarlo a index.php

MUCHAS GRACIASSS

Andy
Publicado: 21/04/2010 4:38 am

hey hey no es necesario poner las rutas absolutas basta solo poner este codigos en

y listo perrin asi no pierden las rutas de imagenes etc.

Edison
Publicado: 18/06/2010 10:55 am

hola me parece muy interesante las indicaciones, me han servido un monton.
Tengo un peque problema. Al acceder a una pagina a través de una url amigable, se mantiene la ruta anterior y cuando quiero ir a otra direccion no la encuentra. ejemplo:

estoy en una pagina index cuya direccion a clientes es: clientes/id,juan/area,contabilidad/ ; y funciona correcto llevandome a clientes pero si quiero regresar a index tengo algo asi: index/v,0/n,0/ ; pero en realidad me conduce a: clientes/id,juan/area,contabilidad/index_amigable/v,0/n,0/, es decir mantiene la direccion anterior.

soy nuevo en esto, les agradezco su ayuda

danny chininin
Publicado: 18/08/2010 4:07 pm

Hola acabo de leer el tutorial que me pareció muy bueno para aprender lo básico en URL Amigables y también he leído todos los comentarios en esta página, bueno quiero adicionar 2 aportes muy importantes que creo que la mayoría de programadores o amateurs en URL amigables quizás confundan, como son:

1. La gran mayoría cree que la función: RewriteRule de Apache dentro de un .htaccess es la que se encarga de cambiar las URL extensas a URL Cortas, eso es totalmente falso, pues en realidad lo que se encarga es de INTERPRETAR las URL_CORTAS como URL_EXTENSAS en una página web, y, lo que convierte a URL CORTAS es el código PHP que en este manual se menciona.

Cómo demostrarlo?, pues prueben lo siguiente:

/***************************/
Archivo .httaccess
/***************************/
RewriteEngine on
#4 variables
Rewriterule ^(.*)/(.*),(.*)/(.*),(.*)/(.*),(.*)/(.*),(.*)/$ $1.php?$2=$3&$4=$5&$6=$7&$8=$9 [L]
#3 variables
Rewriterule ^(.*)/(.*),(.*)/(.*),(.*)/(.*),(.*)/$ $1.php?$2=$3&$4=$5&$6=$7 [L]
#2 variables
Rewriterule ^(.*)/(.*),(.*)/(.*),(.*)/$ $1.php?$2=$3&$4=$5 [L]
#1 variable
Rewriterule ^(.*)/(.*),(.*)/$ $1.php?$2=$3 [L]

/***************************/
Archivo index.php
/***************************/
“.$_SERVER[‘QUERY_STRING’];
exit;
?>
Probando…
1. Escriban en su navegador web la siguiente url:
./index/categoria,monitores/productoID,12345/
2. Ahora escriban lo siguiente:
./index.php?categoria=monitores&productoID=12345

Si se darán cuenta la URL corresponde a la regla #2 del archivo .htaccess :

#2 variables
Rewriterule ^(.*)/(.*),(.*)/(.*),(.*)/$ $1.php?$2=$3&$4=$5 [L]

Entonces ambas mostrará siempre el mismo valor:
/********************/
SERVER[QUERY_STRING]=> categoria=monitores&productoID=12345
/********************/
Que se puede deducir aquí?, Si cuando se envia una URL de formato: ^(.*)/(.*),(.*)/(.*),(.*)/$ se va a INTERPRETAR como: $1.php?$2=$3&$4=$5, (aquí actúa el RewriteRule del .htaccess), caso contrario, es decir si se envía otra url en otro formato, no tiene efecto esta INTERPRETACION, y se muestra en el navegador lo que se envía.

2. Lo que menciona “Josué Ramos” de que: “Para que el .htaccess funcione correctamente hay que añadir el flag [L] al final de cada línea o sino la primera variable despues del nombre del archivo siempre tendrá el valor de la última ya que seguirá cambiando los valores línea por línea.”, es muy importantísimo tomarlo siempre en cuenta, pues haciendo unas pruebas me considerado que esa es la raíz del problema que tiene el ejemplo que está descrito en este tutorial
Cómo probarlo:
Es el error que muestra el ejemplo del tutorial, para resolverlo debemos de poner al final de cada línea el flag: [L].

Y listo, por favor cualquier comentario merezca la pena como aporte a mejorar en conjunto, nuestros conocimiento.

Saludos
Ingº Danny Chininin
IT Consulting and Web Marketing

Jose Carlos
Publicado: 26/10/2010 1:25 am

Hola, un buen artículo y bastantes comentarios buenos, otros no tanto.

A través del buen uso de mod_rewrite se pueden hacer maravillas de cara al posicionamiento de una página, esta es la principal razón por la que uso mod_rewrite. Pero el camino no es fácil, mod_rewrite utiliza expresiones regulares, que son algo bastante complicado porque no siguen un lenguaje natural, y es fácil liarse con los símbolos, comodines,… A menudo se utilizan «a ciegas», sabemos que funcionan pero no tenemos mucha idea de lo que hemos puesto, lo hemos copiado de una web o un blog como este y venga, para alante. Eso está bien mientras funcione sin problemas, en el momento en que los encontramos sin duda se hace necesario esforzarnos un poco más e intentar aprender más sobre este campo, es entonces cuando de verdad empezamos a obtener buenos resultados.

En mi sistema de página http://www.simplewebphp.com/ se utiliza mod_rewrite de forma natural, son varias páginas ya funcionando con Simple web PHP y todas gracias en gran parte a mod_rewrite han conseguido buenos resultados respecto a posicionamiento en su área concreta.

Un saludo para unijimpe y todos los que habéis participado en esta entrada de blog.

abraxas
Publicado: 09/02/2011 9:42 am

muy buena la guita me sirvio muchisimo gracias

JuanFH
Publicado: 02/03/2011 3:20 am

Primero, para aquellos que tengan problemas con el mod_rewrite en local he visto esto:
http://manelgarcia.com/recursos-web/usar-mod_rewrite-con-xampp-y-no-morir-en-el-intento/

Y Segundo, estoy usando SWFAddress para mis webs en flash. Con ellos consigo que la navegación se vea así: http://www.dominio.com/#/apartado/seccion. Lo que quiero es que esa dirección se muestre sin la almohadilla o sea: http://www.dominio/apartado/seccion... por más vueltas que lo doy al mod_rewrite no lo consigo.

¿Alguna idea?

charlescuellar
Publicado: 13/06/2011 9:18 am

hola amigos tengo una url asi

RewriteEngine On
RewriteRule ^clasificados-([^-]*)/$ /ciudad.php?clasificados=$1 [L]

asi qdo la url

http://www.dominio.com/clasifcados-colombia/

ok con el rewrite .htaccess

pero ahora quiero agregarle otra mas que seria

http://www.dominio.com/categoria-ciu…&ciudad=bogota

RewriteEngine On
RewriteRule ^([^-]*)-([^-]*)/$ /categoria-ciudad.php?categoria=$1&ciudad=$2 [L]

queda así

http://www.dominio.com/casas-bogota/

bien pero como hago para unir las dos en una sola así

http://www.dominio.com/clasifcados-c…/casas-bogota/

como seria ???

Gendrith
Publicado: 15/06/2011 2:34 am

Una pregunta ¿para que me reconozca los CSS, Javascript e Imágenes no existe una solución aparte de cambiar todo a direcciones absolutas?

Es que tengo que aplicar las Url amigables a una aplicación ya hecha y son muchos CSS, Javascript y sobre todo Imágenes los que tendría que cambiar uno por uno

De verdad les agradecería mucho la ayuda

Gendrith
Publicado: 15/06/2011 2:57 am

Conseguí una solución, no se si aplique a los casos de otros pero al mio si por la forma en que desarrolle la aplicación

Usar esta etiqueta html en dentro del head

y listo, no hace falta cambiar las direcciones de cada css, imagen ó javascript

Gendrith
Publicado: 15/06/2011 2:58 am

Paso el enlace con las especificaciones de la etiqueta

http://www.w3schools.com/html5/tag_base.asp

anonymous
Publicado: 01/08/2011 6:10 am

Muy buen post, gracias!

CoolArts
Publicado: 10/10/2011 10:53 am

Estimado Unijimpe:

Tengo un problema aparentemente sencillo pero que me está volviendo loco, pues no consigo dar con ello.

Estoy creando una web a un amigo, esta web lo carga todo por AJAX, por lo que la url la voy reescribiendo desde Javascript y sólo se cargan las partes necesarias de la página. La estructura de la url que voy creando desde javascript es la siguiente:
http://dominio/#carpeta1/carpeta2

Observese la «#», de esta manera siempre me encuentro en el index y depende de la url que cree, cargo un contenido u otro desde AJAX. Todo funciona a la perfección, sólo que ahora estoy intentando quitar la dichosa almohadilla de la url y me está resultando un quebradero de cabeza.

Lo que yo quiero es que si un usuario introduce en la barra de la url la siguiente dirección:
http://dominio/carpeta1/carpeta2
el servidor interprete lo siguiente:
http://dominio/#carpeta1/carpeta2

Lo he intentado de mil maneras, pero la última a la que he llegado es esta y nada.

# initialize rewrite engine

RewriteEngine On
Options +FollowSymlinks

RewriteBase /
RewriteRule ^(.+)/(.*)$ #$1/$2

Creo que es que me hago un lio con la sintaxis de RegExp, sino no lo entiendo.

Gracias por todo,
Atentamente: CoolArts

CoolArts
Publicado: 10/10/2011 10:57 am

Perdón me he equivocado en la última linea,

CORRECCIÓN:
RewriteRule ^(.*)/(.*)$ #$1/$2

Gracias,
Un saludo.

unijimpe
Publicado: 10/10/2011 11:58 am

CoolArts, prueba con lo siquiente en donde verificas que no existe en archivo o carpeta y luego lo conviertes a #.

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+[^/])(/?)$ #/$1? [R,NE]

CoolArts
Publicado: 10/10/2011 1:20 pm

Estimado Unijimpe:

Que eficiencia!, muchísimas gracias por tu pronta respuesta.
Funciona a la perfección, sólo que ahora lo que ocurre es lo siguiente, ahora si introduzco esto en la barra de navegación:
# http://dominio/carpeta
Me reescribe la url por esto:
# http://dominio/#/carpeta

Esto me funciona perfectamente, sólo que la url queda sucia a la vista, igual lo que quiero no se puede hacer, pero ¿es posible que a la vista la url quedara?:
# http://dominio/carpeta
¿y el server internamnte este procesando la otra?, es decir esté en el index:
# http://dominio/#/carpeta

Muchas gracias,
Un saludo.

CoolArts
Publicado: 10/10/2011 1:32 pm

Perdón que creo que me explico fatal:

Lo que quiero saber es si es posible que la url quede como la introduzco:
# http://dominio/carpeta/trabajo
y el server no se mueva del index, a pesar de que la url cambie.

Perdón,
Un saludo.

unijimpe
Publicado: 10/10/2011 2:39 pm

CoolArts, para ello podrias no reescribir los URLs, es decir dejarlos sin el simbolo # pero pasarle una variable al HTML indicandole que abra tal o cual sección de acuedo al URL que ha escrito.

CoolArts
Publicado: 10/10/2011 3:10 pm

El problema es que con esa manera pierdo la url amigable, es decir, no es lo mismo
# http://dominio/index.php?id=carpeta&od=trabajo
que
# http://dominio/carpeta/trabajo

Por eso estoy intentando hacer esto.

Muchas gracias de nuevo por tu tiempo.
Un saludo.

ldmarc
Publicado: 26/04/2012 11:32 am

hola buen día, pues traté de utilizar este ejemplo y no me funcionó, yo tengo un archivo al que invoco por id y ademas está en otra carpeta

ejemplo:
index.php?id=carpeta1/carpeta2/archivo

y lo que quiero es que no muestre esas ‘carpetas’ dentro de la url, esconder todo lo que tenga que ver con directorios y que el se vea como todos mencionan aquí, solamente que aparezca index.php/archivo

no sé si haya sabido explicar…habrá manera de que me ayuden???

jrondon
Publicado: 22/07/2012 6:37 pm

Hola soy nuevo en esto.. y estoy muy trancado.. tengo un menu donde llama la pagina contacto.. pero cuando la llamo me levanta la pagina pero no me muestra los css ni la imagen y meno el java… me podrian dar una mano?… desde ya mucha gracia saludo desde uruguay… dejo mi correo uruvenz78@hotmail.com

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)