Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Apache (http://www.forosdelweb.com/f58/)
-   -   Sobre .htaccess y reescribir url’s (http://www.forosdelweb.com/f58/sobre-htaccess-reescribir-url-s-353128/)

Miguel001 26/11/2005 10:06

Sobre .htaccess y reescribir url’s
 
He activado en apache el modulo mod_rewrite:
Código:

LoadModule rewrite_module modules/mod_rewrite.so
Despues he leido bastante documentación sobre el tema de reescribir url’s con el archivo .htaccess.

Aquí casi siempre recomendáis el articulo http://www.zonaphp.com/index.php?mod...ion=leer&id=30.

Precisamente en este artículo se indica que:

Cabe resaltar que en este caso el .htaccess debe esta ubicado en un directorio superior al cual sé esta haciendo referencia con la url, dado que de otra manera no funciona.

Poniendo el ejemplo de los articulos que nos cuentan en ZonaPhp. ¿Si donde se pretende reescribir las url´s se encuentra en una carpeta del dominio(www.dominio.com/articulos), el archivo .htaccess se pondría en el directorio raiz(www.dominio.com)?


El ejemplo del archivo .htaccess que ponen en ZonaPhp es el siguente:
Código:

#Activamos el mod_rewrite
RewriteEngine on
#Le indicamos como re-escribir la URL
#En este caso lo que hacemos es indicarle que las expresiones entre paréntesis corresponden al id y página respectivamente.
RewriteRule /articulo/(.+) /articulo.php?id=$1

Por lo tanto la url http://www.midominio/articulos/articulo.php?id=32 quedaria
para buscadores como http://www.midominio/articulos/articulo/32


Me gustaria saber si en la barra de direcciones una vez reeescrita la url aparece http://www.midominio/articulos/articulo/32
o sigue apareciendo
http://www.midominio/articulos/articulo.php?id=32
En cualquier caso ¿se podria acceder a dicha pagina de ambas formas?.

Me gustaría saber tambien alguna web que utilice esta técnica. Según leí esta misma pagina(forosdelweb) utilizaba este sistema, sin embargo veo que los post de los que aquí escribimos, en google aparecen con el formato original http://www.forosdelweb.com/f18/. Si utilizaran esta tecnica, teoricamente tendria que aparecer esta dirección en google como
http://www.forosdelweb.com/forumdisplay/18.

Yo lo he intentado en local y en mi servidor, y no consigo que funcione.
Si me contestáis a las preguntas anteriores podria tener alguna referencia de porque no funciona.
Por último veo que hay quien añade al principio del archivo .htaccess la instrucción Options +FollowSymLinks

Código:

Options +FollowSymLinks
RewriteEngine on
RewriteRule /articulo/(.+) /articulo.php?id=$1

que diferncia hay entre escribir el archivo anterior a este:
Código:

RewriteEngine on
RewriteRule /articulo/(.+) /articulo.php?id=$1

Agradezco vuestra ayuda.
Un Abrazo.

tyo100 26/11/2005 10:26

Este tema deberia ir en servidores Web => Apache

Cita:

Despues he leido bastante documentación sobre el tema de reescribir url’s con el archivo .htaccess.
Por mas que leas, nunca sera suficiente

Cita:

Cabe resaltar que en este caso el .htaccess debe esta ubicado en un directorio superior al cual sé esta haciendo referencia con la url, dado que de otra manera no funciona.
Pero no necesariamente, hay otras opciones, como por ejemplo poner las directivas directamente en el archivo de configuracion de apache

Cita:

Me gustaria saber si en la barra de direcciones una vez reeescrita la url aparece http://www.midominio/articulos/articulo/32
o sigue apareciendo
http://www.midominio/articulos/articulo.php?id=32
En cualquier caso ¿se podria acceder a dicha pagina de ambas formas?.
Se puede acceder a la pagina de ambas formas, pero si vaz a usar mod_rewrite se recomienda que uses la primera y todos tus links sean como la primera para cuando empiecen a indexarte

http://www.midominio/articulos/articulo/32

Cita:

Yo lo he intentado en local y en mi servidor, y no consigo que funcione.
Si me contestáis a las preguntas anteriores podria tener alguna referencia de porque no funciona.
Por último veo que hay quien añade al principio del archivo .htaccess la instrucción Options +FollowSymLinks
Que version de apache tienes??, que SO tienen???, tienes cargado el modulo rewrite?? si mal no recuerdo la opcion +FollowSymLinks permite seguir enlaces fuera de el document_root, estos enlaces se hacen en linux con ln -s.


Nota:
No lo tomes a mal pero, Aun te falta leer mas.

Miguel001 26/11/2005 10:37

Gracias por tus respuestas.

Seguro que seguiré leyendo más.

Como indicas, si el moderador quiere trasladar este post a Servidores Web perfecto.

Si, esta cargado perfectamente el modulo rewrite.

Utilizo la versión 1.3.33 de apache/WindowsXP y PHP 4. 3.3

tyo100 26/11/2005 11:12

intenta cargar las directivas no en el archivo .htaccess si no directamente en el archivo de configuracion de apache

Código PHP:

<Directory c:/directorio/>
    <
IfModule mod_rewrite.c>
        
RewriteEngine on
        RewriteRule 
/articulo/(.+) /articulo.php?id=$1
    
</IfModule>
</
Directory


Tambien checar tu error.log de apache y mira que errores te tira, el directorio debe ser donde esta tu archivo articulo.php

Miguel001 26/11/2005 13:39

Finalmente he conseguido que me funcione en local añadiendo al archivo de configuración de apache httpd.conf


Código:

<Directory "C:/directorio/hdocs/articulos">
allow from all
AllowOverride All
</Directory>

y creando el archivo .htaccess de la siguiente manera:

Código:


RewriteEngine on
RewriteBase /
RewriteRule articulo/(.+) articulos/articulo.php?id=$1


El .htaccess lo he puesto en la misma carpeta donde está el archivo articulo.php

Para que funcionen los archivos css, js, las imagenes y los links he tenido que darle rutas absolutas. tipo http://localhost/articulos/index.php, o <img src=http://localhost/imagenes/imagen.gif>.

De esta manera puedo ver mis archivos de ambas formas:

http://localhost/articulos/articulo.php?id=20
o
http://localhost/articulos/articulo/20

Una ultima duda:
Cuando navego por el sitio las URL's aparecen
asi:
http://localhost/articulos/articulo.php?id=20.
Cómo he dicho antes, introduciendo el otro formato más sencillo tambien se ve perfectamente la pagina. Mi pregunta es: ¿Hay que hacer un mapa del sitio con las url's mas faciles para los buscadores o los buscadores ya encuentran el mismo formato sencillo de forma automatica?.

Repito. Lo pregunto porque por defecto aparecen las url's de siempre.

Gracias por la ayuda y
Veremos como va en el servidor.

tyo100 28/11/2005 09:10

Cita:

Iniciado por Miguel001
Para que funcionen los archivos css, js, las imagenes y los links he tenido que darle rutas absolutas. tipo http://localhost/articulos/index.php, o <img src=http://localhost/imagenes/imagen.gif>.

Puedes darle rutas por ejemplo /articulos/index.php o /imagenes/imagen.gif , recuerda para que funcione bien con los buscadores es necesario que los links dentro de tu pagina sean hacia articulo/20 y no articulo.php?id=20

Salu2

eContento 02/12/2005 06:49

No me funciona
 
Hola,
A mi no me funciona.
¿podríais poner aquí el .htacces que tenéis en el document_root?

engonga 17/12/2005 12:29

el mod rewriter solo funciona en apache
 
hola tengo mi web en un servidor que tiene windows 2003

los de la empresa que lo ospedan me han comentado que tengo el modrewriter activado

pero a mi no me funciona


no sera que solo funciona en unix?
o que tengan el apache instalado?

por que yo corro sobre IIS

j4v13r 12/06/2008 07:12

Respuesta: el mod rewriter solo funciona en apache
 
Cita:

Iniciado por ^engonga^ (Mensaje 1364729)
hola tengo mi web en un servidor que tiene windows 2003

los de la empresa que lo ospedan me han comentado que tengo el modrewriter activado

pero a mi no me funciona


no sera que solo funciona en unix?
o que tengan el apache instalado?

por que yo corro sobre IIS

el mod_rewrite es un modulo de apache..................................... :S
asi que una de dos
1 - o vos estas corriendo en un apache instalado en windows.. y la empresa de hosting te mintio al decirte que corres en iis
2 - o realmente estas corriendo en iis y la empresa te mintio al decirte que tenes el mod_rewrite.....

en cualquier caso te mintio :P jajajaja o el que te dijo no sabe de que habla....

eh visto por ahi algunas cosas parecidas al mod_rewrite de apache para iis pero no se como funcionaran...
fijate en iismod.com aver que hay

MsPeru 07/12/2008 20:51

Respuesta: Sobre .htaccess y reescribir url’s
 
Amigos Una Pregunta yo tengo una web que se modula asi usuarios?id=registrados&u=1
el 1 viene e ser la variable designada al usuarios por su registro pero como quedaria mi url miweb.com/usuairos/registrador/1 ? nose una ayuda

erpeli 11/12/2008 07:15

Respuesta: Sobre .htaccess y reescribir url’s
 
Buenas a todos:

Yo estoy a dos bandas a ver si me funciona algun ejemplo pero nada.

En el servidor:

Apache--> 1.3.39
PHP--> 4.4.7
.htaccess --> RewriteRule ^url/(.+)\.html url/index.php?seccion=$1

(si les hace falta les pongo un enlace)

Y en local estoy con xammp:

xampp: version--> 1.6.8
Apache--> 2.2.9
PHP--> 5.2.6

RewriteEngine on
RewriteBase /
.htaccess --> RewriteRule ^url/(.+)\.html url/index.php?seccion=$1

De primeras en el xammp me da un error 500 de servidor por lo que pase a poner en el httpd.conf lo de:

<Directory "C:/xampp/htdocs">
allow from all
AllowOverride All
</Directory>

Pero nada mas de lo mismo. En fin a ver si me pueden echar una mano


La zona horaria es GMT -6. Ahora son las 07:59.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.