Foros del Web » Programando para Internet » PHP »

URLS Amigables

Estas en el tema de URLS Amigables en el foro de PHP en Foros del Web. Hola a todos, desde hace días ando intentando configurar el archivo .htaccess con el url rewritter. Sin embargo, no he conseguido hacerlo funcionar y he ...

  #1 (permalink)  
Antiguo 15/01/2006, 06:16
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
URLS Amigables

Hola a todos, desde hace días ando intentando configurar el archivo .htaccess con el url rewritter. Sin embargo, no he conseguido hacerlo funcionar y he buscado una alternativa.

He encontrado este código:
Código PHP:
<?php
   
if(isset($PATH_INFO)) {
      
$vardata explode('/'$PATH_INFO);
        
$num_param count($vardata);
        if(
$num_param == 0) {
            
$vardata[] = '';
            
$num_param++;
        }
        for(
$i=1$i<$num_param$i+=2) {
            $
$vardata[$i] = $vardata[$i+1];
        
$total=$total + $$vardata[$i];
        }
    }
?>
Que convierte una URL del tipo:
http://www.dominio.com/archivo.php?id=3&pag=1

En:
http://www.dominio.com/archivo.php/id/3/pag/1

Creo que me acerco más a lo que los buscadores piden pero me gustaría saber como podría modificar el código para que poniendo por ejemplo:

http://www.dominio.com/archivo.html/3/1

o incluso http://www.dominio.com/archivo/3/1

Me llevara a http://www.dominio.com/archivo.php?id=30&pag=1

Muchas gracias de antemano y saludos ;)
  #2 (permalink)  
Antiguo 15/01/2006, 19:01
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Sonrisa Yo prefiero mod_rewrite

Con mod_rewrite, sólo tendrías que meter en un archivo de texto llamado ".htaccess" el siguiente código:

Código:
RewriteEngine on
RewriteRule ^([a-z]+)(\.html)?/([0-9]+)/([0-9]+)$ http://www.tusitioweb.com/$1.php?id=$3pag=$4
Explicación:
El primer paréntesis ([a-z]) captura la palabra "archivo" (o sea el primer parámetro) o cualquier palabra que contenga puras letras, si quisieras que también incluyera números, quizá podrías cambiarla por algo como ([a-z0-9]+), el siguiente paréntesis puede tomar cualquiera de dos valores (por eso el signo de pregunta), ya sea que tu archivo incluya la terminación ".html" o bien no incluya terminación, tal como lo deseabas en tu ejemplo.

Los dos paréntesis siguientes toman el id y el número de página.

Ahora, después del símbolo "$" (fin de captura de URL), le dices al Apache que te reescriba tu URL haciendo referencia a los paréntesis con las variables $1, $2, $3, $4, según el paréntesis al que te quieras referir.

Nota cómo no usamos $2, ya que éste paréntesis sólo se utilizó para tener la opción de que el archivo incluya ".html" o no lo incluya, como quiera que sea.

Esto convierte: http://www.dominio.com/archivo.html/3/1
o bien: http://www.dominio.com/archivo/3/1
a esta: http://www.dominio.com/archivo.php?id=3&pag=1

Como vez, en sólo dos líneas del .htaccess tienes hecho el trabajo.

(edito 30 min. después) Acabo de ver que se puede poner el .htaccess en el mismo nivel de jerarguía en donde se localiza tu sitio, dentro de public_html

Lo he probado, ojalá tú también tengas éxito. Antes yo tenía muchos problemas con el ModRewrite, no entendía ningún manual, ojalá puedas implementarlo, ya que en pocas líneas tienes un gran poder de AMIGABILIDAD en tus URLS.

Un consejo adicional, cuando comiences a experimentar con el mod_rewrite, no trates de hacer tanto procesamiento, lo importante al principio es saber que SÍ funciona.

Para ello te recomiendo que pruebes con el siguiente .htaccess y si te redirecciona, ya sabrás que sí funciona y ya lo puedes ir complicando más y más.

Código:
RewriteEngine on
RewriteRule ^username/cocacola.html$ username/index.html
En donde index.html sea una página que SÍ EXISTA en tu server. O le puedes poner index.php o lo que quieras, pero que sí exista.

Ahora escribe en la barra de direcciones www.tudominio.com/cocacola.html y si te redirecciona, ya tienes hecho el primer paso.

COMENTARIO FINAL
Para hacer pruebas mientras desarrollas el código en tu PC, "username" es el nombre de la carpeta que incluye todo tu proyecto, y cuando pongas en la barra de direcciones:

http://localhost/carpetadetuproyecto/cocacola.html debería redireccionarte a la primera página de tu web, es decir: http://localhost/carpetadetuproyecto/index.html

Un saludo !

QUE ALGUIEN OPINE POR FAVOR
Seguramente es posible hacer todo esto sin necesidad de especificar un USERNAME o colocar la ruta completa de URL junto con el "http://bla-bla-bla", pero no sé cómo, si alguien puede opinar, estará de lux.

Última edición por uamistad; 15/01/2006 a las 19:54
  #3 (permalink)  
Antiguo 16/01/2006, 04:40
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Muchísimas gracias uamistad, todo a funcionado a la perfección. El problema es que lo que buscaba es lo contrario, es decir, que las URLs
http://www.dominio.com/archivo.php?id=5&pag=1
Se convirtieran en
http://www.dominio.com/archivo.html/5/1
o
http://www.dominio.com/archivo/5/1

Intentaré modificarlo yo mismo, a ver si consigo algo.

Tengo una última pregunta, en los <a href=""> ¿tengo que poner el enlace con los id=4&pag=2 o con los 4/2? Para que los buscadores me indexen.

Gracias de nuevo ;)
  #4 (permalink)  
Antiguo 16/01/2006, 05:11
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
ok

Exactamente eso es lo que sucede. Que cuando tú pones en tu barra de navegador la URL http://www.dominio.com/archivo/5/1, Apache lo interpretará como si fuera: http://www.dominio.com/archivo.php?id=5&pag=1, pero eso no lo ve la gente ni los buscadores. Esa transformación es interna.

Ahora, en tu página tienes que escribir las URL de la nueva forma, un enlace que antes ponías como http://www.dominio.com/archivo.php?id=5&pag=1, ahora ponlo así: http://www.dominio.com/archivo.html/5/1

CUIDADO CUIDADO !
Google ha advertido en Información para Webmasters que NO agregará ninguna URL a su buscador si incluye como parámetro algún &id=.

Si continúas usando tus enlaces anteriores, tendrás problemas con Google.

Saludos !
  #5 (permalink)  
Antiguo 16/01/2006, 05:32
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Gracias de nuevo ;). He puesto en el .htaccess esto:
Código HTML:
RewriteEngine on
RewriteRule ^([a-z]+)(\.html)?/([0-9]+)/([0-9]+)$ http://www.dominio.com/$1.php?id=$3pag=$4
Luego entro aquí http://www.dominio.com/prueba.html/333/54

Y, como verás, me lleva a http://www.dominio.com/prueba.php?id=333pag54

Parece que tampoco divide las variables con la & >_<.

Saludos ;)

P.D.: Si pones http://www.dominio.com/prueba/333/54 sin el HTML, no te redirige, sino que da error 404.

EDIT: Ahora sí todo perfecto, incluso el:
Código HTML:
<BASE href="http://<?php echo $_SERVER['SERVER_NAME']."/".$_SERVER['PHP_SELF'] ?>"> 
Muchas gracias, de entre todas las webs y tutoriales que he visto, tu explicación ha sido la única que me ha servido ;)

Última edición por Gryphus; 29/05/2006 a las 02:57
  #6 (permalink)  
Antiguo 16/01/2006, 05:34
 
Fecha de Ingreso: noviembre-2004
Mensajes: 27
Antigüedad: 19 años, 4 meses
Puntos: 0
de las veces que he leido sobre el mod_rewriter a ti si te entendi pero....
si la url es index.php?id=contacto o sea con un parametro para empezar.... si hago lo de tu ejemplo, no me queda el .html al final.... index/contacto.html solo index.html/contacto

RewriteEngine on
RewriteRule ^([a-z]+)(\.html)?/([0-9]+)/([0-9]+)$ http://www.tusitioweb.com/$1.php?id=$3pag=$4

aparte esto no me permite ver el template de la web que tengo en un directorio arriba.... (/template (.css, .js)) ni las imagenes (/img).... porque pasa esto?

acabo de hacer unas pruebas y si pongo...

RewriteEngine on
RewriteRule ^index-([_a-zA-Z0-9-]+).html index.php?id=$1

asi si queda .html al final pero de esta manera.... index-contacto.html no me queda con la diagonal para hacer index/contacto.html.... como se pone la diagonal?

tal vez yo sea el problema al no poner atencion
  #7 (permalink)  
Antiguo 16/01/2006, 06:25
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
fe de erratas

Ahh, creo que faltó separar las variables con el &, pruébalo con el &:
Código:
RewriteEngine on
RewriteRule ^([a-z]+)(\.html)?/([0-9]+)/([0-9]+)$ http://lnx.memoriasff.com/$1.php?id=$3&pag=$4
Ya vi que no es necesario incluír el "http://...", probé los ejemplos siguientes y funcionaron sin esa sintaxis.

Si no te jala escribe por aquí.

Ahh, feel_the_sky, eso del index.html/contacto fue porque así lo necesitaba Gryphus, pero tú puedes especificar cómo lo quieres en la regla.

LA SINTAXIS ES SENCILLA
Renglón que dice qué quieres capturar [espacio] renglón que dice cómo quieres que se reescriba.

Algunos ejemplos:

1. Para que cuando se escriba misitio.com/hotmail.html se reenvíe a hotmail.com
Código:
RewriteEngine on
RewriteRule ^hotmail.html http://www.hotmail.com
2. Para que misitio.com/contacto.html se convierta internamente en misitio.com/index.php?modulo=contacto

Código:
RewriteEngine on
RewriteRule ^([a-z]+)\.html index.php?modulo=$1
(ese $1 hace referencia a lo que se capturó en el primer paréntesis, que en este ejemplo es el único paréntesis que hay)

3. Ejemplo de feel_the_sky, para transformar que cuando la URL la escriban como index/contacto.html se convierta internamente en index.php?id=contacto

Código:
RewriteEngine on
RewriteRule ^index/([-_a-zA-Z0-9]+)\.html index.php?id=$1
Espero les funcione, saludos !
  #8 (permalink)  
Antiguo 16/01/2006, 06:41
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
ahh, también tuve ese problema...

También tuve ese problema feel_the_sky (no me cargaba mis estilos CSS ni mi template), eso lo solucioné poniendo la etiqueta BASE entre el <head> y el </head>

En mis pruebas de PC local:
<base href=\"http://localhost/micarpetadelproyecto/\" /> así nada más tengo que manejar links relativos (como index.html) y el navegador lo transforma a absoluto (http://localhost/micarpetadelproyecto/index.html)

De manera más general, quizá te funcione esto:

<BASE href="http://<?php echo $_SERVER['SERVER_NAME']."/".$_SERVER['PHP_SELF'] ?>">

Chécalo, con eso ya no tuve problemas, man.

Última edición por uamistad; 16/01/2006 a las 06:50
  #9 (permalink)  
Antiguo 16/01/2006, 07:51
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Sonrisa Otros usos de mod_rewrite

Encontré otro gran uso para esto !!

Para evitar que la gente se robe las imágenes de nuestro sitio poniéndolas en sus sitios con una liga directa, se puede utilizar el siguiente para que NO les funcione:
Código:
RewriteEngine on
RewriteRule \.(gif|jpg|png)$ - [F]
El guión significa algo así como: "Querido Apache, no te preocupes por reescribir de alguna manera, no es necesario".

La [F] es un flag de FORBIDDEN y con esto manda un error 403

O aún más divertido, con el siguiente lograremos que las imágenes que nos han robado y ya están desplegándolas en sus respectivos webs, se transformen automáticamente en alguna imagen porno o algo gracioso o hasta un banner de nuestra página para que nos hagamos publicidad gratis:
Código:
RewriteEngine on
RewriteRule \.(gif|jpg|png)$ http://www.algunsitio.com/fotogacha.gif [R,L]
La [R] obliga a la redirección, la [L] indica que no se ejecute ninguna RewriteRule por debajo de ésta.
  #10 (permalink)  
Antiguo 17/01/2006, 03:07
 
Fecha de Ingreso: noviembre-2004
Mensajes: 27
Antigüedad: 19 años, 4 meses
Puntos: 0
ya intenté hacer esto...

RewriteEngine on
RewriteRule ^index/([-_a-zA-Z0-9]+)\.html index.php?id=$1

pero cuando pongo http://localhost/web/index/contacto.html sale el index sin estilos, aún cuando pongo base href que solo hace que se vean las imagenes...

con ese mismo ejemplo si en vez de / pongo - ó . si sale...

http://localhost/web/index-contacto.html
http://localhost/web/index.contacto.html

a esto le modifique lo de index/ y lo puse así:

RewriteEngine on
RewriteRule ^([_a-zA-Z0-9-]+).html index.php?id=$1

eliminando el index/ con esto me queda...

http://localhost/web/contacto.html

y funciona sin problemas.... pero como hacer index/contacto.html.... no me queda.... o para esto hace falta dos o mas parámetros?

y si te entiendo... lo de index solo es un ejemplo que podría ser noticias, foro o lo que sea.... después habría que añadir otros parámetros en el .htaccess para que funcionara como noticias/enero/06 ó foro/cat/php solo que quiero hacer las pruebas con un parámetro para cualquier problema después...
  #11 (permalink)  
Antiguo 17/01/2006, 04:04
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
está raro

Al menos lograste que se vieran las imágenes.

Cómo ligas la hoja de estilos?, prueba cambiar eso.

Si usas una ruta relativa, como:

href=\"css/2cols.css\"

Intenta con una absoluta, como:

href=\"http://www.otroservidor-quenosea-eltuyo.com/css/2cols.css\"

Es una idea, ojalá funcione compa.
  #12 (permalink)  
Antiguo 17/01/2006, 04:58
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
De acuerdo El problema está en el nombre

Ya vi cuál es el problema de que no te lea bien el .htaccess (según yo).

Mira, tú quieres que:

rutaruta/index/contacto.html

Se reescriba internamente como:
rutaruta/index.php?id=contacto

y para ello usaste el código siguiente:
Código:
RewriteEngine on
RewriteRule ^index/([-_a-zA-Z0-9]+)\.html index.php?id=$1
Que por cierto tiene mucha lógica.

El problema parece estar en el nombre index. Es como si el Apache no permitiera que exista un directorio llamado INDEX.

Mira, prueba cambiándole el nombre a indexa o alguna otra cosa y verás que sí funciona la diagonal (/) para colocar directorios y armar rutas como rutaruta/indexa/contacto.html

Chécalo, ¿curioso, no?

Nota:
Si ya tienes un sitio web armado y en línea, además de que los buscadores ya te han indexado, entonces prueba mejor con el siguiente código:

Código:
RewriteEngine on
RewriteRule ^index/([-_a-zA-Z0-9]+)\.html index.php?id=$1 [R=301,L]
Ese R=301 es para que los buscadores, la siguiente vez que visiten tu sitio, sepan que tienes una redirección permanente a una nueva ruta, que será rutaruta/indexa/contacto.html

Esto es importante por dos cosas, la primera es que buscadores como Google detestan tener sitios duplicados y si no le dices que es una redirección, podría pensar que tienes en tu sitio dos formas de llegar al mismo contenido, ya sea rutaruta/index.php?id=contacto o bien rutaruta/indexa/contacto.html y lo que menos queremos es que Google se enoje con nosotros, ¿no?

La segunda razón es porque mencionándole a los Search Engines que tienes una redirección 301, en especial a Google, te transferirá a tu nueva ruta, es decir, a rutaruta/indexa/contacto.html todo privilegio que te hayas ganado, como tu PageRank por ejemplo.

Ahh, la [L] es para decirle al .htaccess que todas las RewriteRule que se encuentran por debajo de esa, ya no sean leídas (en caso de que tuvieras varias, podría ir o no según te convenga).

Espero funcione, bro.

Última edición por uamistad; 17/01/2006 a las 05:04
  #13 (permalink)  
Antiguo 17/01/2006, 06:40
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Hola de nuevo uamistad, he probado el código para que no me puedan robar imágenes de mi web:
Código:
RewriteEngine on
RewriteRule \.(gif|jpg|png)$ http://www.algunsitio.com/fotogacha.gif [R,L]
Y funciona si lo hago desde otro servidor... Pero también desde el mío >_<. Osea, que me pone todas las imagenes como "http://www.algunsitio.com/fotogacha.gif".

Saludos ;)
  #14 (permalink)  
Antiguo 17/01/2006, 07:02
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
jajaa

Qué cosas, las protecciones se volvieron contra ti. Yo lo encontré por ahí, pero no había tenido la oportunidad de checarlo, jeje. Tienes razón.

Vi una más completa, aunque no termino de entenderlo.

Código:
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://(profiles\.)?myspace\.com/.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?myspace\.com/.*$ [NC]
RewriteRule \.(gif|GIF|JPG|jpg)$
http://www.web-goddess.org/img/asshole.png [R,L]

Esto del .htaccess es muy apasionante y creo que llegué a subestimarlo, es muy poderoso, queda mucho por aprender.

Me alegro que te haya servido, compa.
  #15 (permalink)  
Antiguo 17/01/2006, 09:11
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Ahora sí me funciona, lo he adaptado a mi web y va sobre ruedas. Gracias de nuevo uamistad, me han servido de gran ayuda tus respuestas.

Saludos ;)
  #16 (permalink)  
Antiguo 18/01/2006, 05:30
 
Fecha de Ingreso: noviembre-2004
Mensajes: 27
Antigüedad: 19 años, 4 meses
Puntos: 0
es curioso como dices, ya hice una prueba...

http://localhost/web/url/contacto.html

y esto si funciona /url/ en vez de /index/ incluso funciona si pongo url/1/contacto.html cuando pongo dos o mas parámetros en el .htaccess para sustituir solo uno.... aunque esto no lo veo necesario...

y ahora puse en base href la direccion real (url) porque al poner...

<base href="http://<?php echo $_SERVER['SERVER_NAME']."/".$_SERVER['PHP_SELF'] ?>">

sale por ejemplo http://localhost/web//url/contacto.html y esto muestra un error por la diagonal extra, pero creo que eso es cuestión de lógica....

aunque ahora no tengo mi web en linea gracias por el dato para el .htaccess de los buscadores y por la ayuda
  #17 (permalink)  
Antiguo 25/01/2006, 17:57
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Hola de nuevo. Todo iba bien con este sistema hasta que me he encontrado con algo, que ciertamente es un poco tonto, no logro simular un efecto similar o arreglarlo.

Veréis, todos los links de este tipo:
Código HTML:
<a href="#" onclick="blablabla"></a> 
Muestran en la barra de estado cuando pones el ratón encima del enlace, el archivo en el que estás pero con la extensión en PHP. He logrado realizar un efecto similar usando javascript pero ahora tengo un link para que cuando pulses, vayas al "top" de la página, es decir, esto:
Código HTML:
<a href="#top"></a> 
Si estoy en index.html (que en realidad es index.php) y hago click, me lleva a index.php#top.

He probado con:
Código HTML:
<a href="index.html#top"></a> 
Y funciona a la perfección pero ese link está en todas las páginas de mi web a modo de "include". Por eso, no puedo dedicarme a poner el nombre y extensión de todas las páginas de mi web.

He probado con:
Código PHP:
$_SERVER['SERVER_NAME'
Pero me aparece index.php

¿No hay un comando para que me aparezca solo el nombre del archivo y su ubicación pero no la extensión? De ese modo, podría usar el comando y luego .html

Saludos ;)
  #18 (permalink)  
Antiguo 28/04/2006, 23:40
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 20 años, 11 meses
Puntos: 3
Algo que no entiendo...

He encontrado este código:
Código PHP:
<?php
   
if(isset($PATH_INFO)) {
      
$vardata explode('/'$PATH_INFO);
        
$num_param count($vardata);
        if(
$num_param == 0) {
            
$vardata[] = '';
            
$num_param++;
        }
        for(
$i=1$i<$num_param$i+=2) {
            $
$vardata[$i] = $vardata[$i+1];
        
$total=$total + $$vardata[$i];
        }
    }
?>
perfecto pero cual seria el parámetro que se usaria para trabajar? sera el $vardata o $num_param? osea, cual de los "$" debo usar para ejecutar las sentencias con el SQL????
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #19 (permalink)  
Antiguo 29/04/2006, 08:13
 
Fecha de Ingreso: abril-2006
Mensajes: 5
Antigüedad: 18 años
Puntos: 0
muy bueno, gracias
  #20 (permalink)  
Antiguo 04/05/2006, 15:54
 
Fecha de Ingreso: octubre-2004
Mensajes: 114
Antigüedad: 19 años, 6 meses
Puntos: 0
Vaya... hasta que encontre un tutorial o ayuda que SI ENTIENDA... todos los demas que encontre estan bastante confusos... quieren explicar todo muy bien y terminan confundiendo totalmente al novato como yo...

Tengo el mismo problema tengo urls como:

http://www.mipagina.com/review_list....1&sub_cat_id=2

Seria genial poder hacer que fuera:
www.mipagina.com/review_list.php/1/2

o aun mejor

www.mipagina.com/review_list/1/2

Esto lo podria conseguir leyendo detenidamente este post y haciendo pruebas.. Pero, lo que en en realidad me interesaria mucho... es que el usuario fuera capaz de entrar a la pagina de cada item mediante:

www.mipagina.com/anime1000

Y te llevara a la misma pagina que si fuera:
http://www.mipagina.com/review_list....1&sub_cat_id=2

Eso lo he visto en una pagina similar a lo que ofrezco yo pero en ingles. Y me gustaria saber si es posible.

Gracias.
  #21 (permalink)  
Antiguo 04/05/2006, 15:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Haggen

El detalle es que estas técnicas pasan por un detalle fundamental: Se debe conocer sobre "Expresiones regulares" .. ese concepto -hasta- a mi se me atraganta (no es mi fuerte .. lo evito si puedo). Pero eso tengo claro por lo menos por mi parte .. no puede esperar un manual que me diga como hacer un "re-escritura" del URL con el URL exacto que "a mi" me dió tal vez por generar según las condiciones de mi aplicación.

Era esa sóla la observación para que encamines tu busqueda de información o tutoriales de otra forma ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #22 (permalink)  
Antiguo 04/05/2006, 16:10
 
Fecha de Ingreso: octubre-2004
Mensajes: 114
Antigüedad: 19 años, 6 meses
Puntos: 0
Si bueno... entiendo tu punto.. La vdd es que soy un novato total en esto.. y salgo adelante con mis muuuuchas limitaciones.. He encontrado muchos tutoriales acerca de esto, en el cual usan terminos que la verdad no entiendo nada, es como de "programador para programadores", yo no soy programador la verdad... pregunto y modifico, pregunto y modifico, claro que siempre antes de esto intento hacerlo por mi mismo... Antes de preguntar investigo lo mas que pueda.

En los manuales (referencias) que encontrado la verdad me perdi por completo! y sin querer, hice una busqueda en este foro de "mod_rewrite" encontre este topico, comenze a leer y entendi muy bien...

Y bueno... si lo que busco se puede lograr y hay alguien que pueda apoyarme pues lo agradeceria mucho.

Saludos!
  #23 (permalink)  
Antiguo 05/05/2006, 06:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Haggen
Si bueno... entiendo tu punto.. La vdd es que soy un novato total en esto.. y salgo adelante con mis muuuuchas limitaciones.. He encontrado muchos tutoriales acerca de esto, en el cual usan terminos que la verdad no entiendo nada, es como de "programador para programadores", yo no soy programador la verdad... pregunto y modifico, pregunto y modifico, claro que siempre antes de esto intento hacerlo por mi mismo... Antes de preguntar investigo lo mas que pueda.

En los manuales (referencias) que encontrado la verdad me perdi por completo! y sin querer, hice una busqueda en este foro de "mod_rewrite" encontre este topico, comenze a leer y entendi muy bien...

Y bueno... si lo que busco se puede lograr y hay alguien que pueda apoyarme pues lo agradeceria mucho.

Saludos!
Como ya te decía ... lo que necesitas realmente es la "expresión regular" correcta para tu caso y aplicarla según las funciones de "mod_rewrite" que se definen para eso.

Por mi parte no te puedo ayudar (ya te decía que no es mi fuerte ese tema). Pero . .si quieres intentar hacerlo tu mismo .. debes buscarte un manual de "Expresiones regulares" (sé que el tema es complejo .. pero es la "base" para este tema concreto).

Un saludo, y Suerte.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #24 (permalink)  
Antiguo 06/05/2006, 12:56
 
Fecha de Ingreso: octubre-2004
Mensajes: 114
Antigüedad: 19 años, 6 meses
Puntos: 0
Bueno, pues te lo agradeceria muchisimo...

Gracias por la ayuda.
  #25 (permalink)  
Antiguo 31/10/2006, 12:27
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Por acá anda una guía interesante de expresiones regurlares. Es para JScript, pero parece que la sintaxis es igual o similar a otros lenguajes, ya que algunos depuradores que he usado como JavaScript para envío de información también me funcionan en php.

http://msdn2.microsoft.com/en-us/library/6wzad2b2.aspx
  #26 (permalink)  
Antiguo 07/04/2007, 16:06
 
Fecha de Ingreso: julio-2005
Mensajes: 58
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: URLS Amigables

HOLAAA.... como le hago para que todo el sitio utilice el mod_rewrite, no quisiera tener que poner un .htaccces en cada directorio ?

Como lo hago para que todo el sitio lo respete ?

Gracias.
  #27 (permalink)  
Antiguo 16/04/2007, 22:12
 
Fecha de Ingreso: septiembre-2004
Ubicación: Chihuahua Mex
Mensajes: 404
Antigüedad: 19 años, 7 meses
Puntos: 2
Re: URLS Amigables

todo el sitio respera el que subes a la principal solo que subas otro en otra carpeta

Saludos
  #28 (permalink)  
Antiguo 26/04/2007, 13:00
 
Fecha de Ingreso: julio-2005
Mensajes: 58
Antigüedad: 18 años, 8 meses
Puntos: 0
Como se que mod_rewrite esta encendido

He seguido la ayuda, y tengo una pregunta...

QUE COSA debo ver en el PHPINFO cuando prendo el mod_rewrite, no veo que funcione y no veo cambio en el phpinfo cuando hago la activacion...

gracias.
  #29 (permalink)  
Antiguo 27/04/2007, 11:51
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 20 años, 11 meses
Puntos: 3
Re: URLS Amigables

para que te funcione debes configurar tu apache para que coloque el PHP como un modulo y no como in CGI... coloca lo siguiente en el httpd.conf

para Apache 2.X.X (bueno yo lo tengo hasta el 2.0.59):

LoadModule php4_module "c:\php\php4apache2.dll"
AddType application/x-httpd-php .php

para versiones anteriores:
LoadModule php4_module "c:\php\php4apache.dll"
AddType application/x-httpd-php .php

Claro debes colocar esas *.dll en el directorio principal del php
una vez hecho estos pasos, reinicia tu server (preferiblemente tu equipo) y cuando hagas un phpinfo() veras algo como esto:

Server API Apache 2.0 Handler
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #30 (permalink)  
Antiguo 04/05/2007, 12:20
 
Fecha de Ingreso: julio-2005
Mensajes: 58
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: URLS Amigables

Tengo Apache/1.3.33 (Win32) PHP/4.4.2

Lo hago como dices, veo en el phpinfo:

Server API Apache

Veo tambien en la caja de Standar:

url_rewriter.tags:

a=href,area=href,frame=src,input=src,form=fakeentr y a=href,area=href,frame=src,input=src,form=fakeentr y

Eso me dice que esta funcionando el modo rewrite ?

Eso es lo primero que quiero asegurar, para luego preocuparme por el manejo del .htdocs.

Tu que cosa miras en el phpinfo que te dice que mod_rewrite esta activo ?

Gracias.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:31.