Foro de Xeoweb Foro de Posicionamiento y Buscadores
Aprendiendo a Promocionar Páginas Web.
Xeoweb :: Sindicar
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entre para ver sus mensajes privadosEntre para ver sus mensajes privados   LoginLogin 
Congreso SEO para SEOs
¿Alguien me ayuda a entender la sintaxis de mod rewrite?
Ir a página 1, 2  Siguiente
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Lenguajes de Programación Web
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Simon
Me gusta MSN!


Registrado: 30 Abr 2005
Mensajes: 323

MensajePublicado: Dom Sep 11, 2005 4:53 am    Asunto: ¿Alguien me ayuda a entender la sintaxis de mod rewrite? Responder citando

Hola, tengo problemas con el mod rewrite. He estado mirando por internet para hacer mod rewrite de mis noticias y otras secciones, y al leer una guia veo... :
Código:
Expresiones regulares
El mod_rewrite soporta expresiones regulares las cuales responde a la siguiente especificación:

Texto
. Cualquier carácter
[caracteres] Clase de caracteres: Algún carácter de caracteres
[^caracteres] Clase de caracteres: Ningún carácter de caracteres
texto1|texto2 Alternativa: texto1 or texto2

Cuantificadores:
? 0 o 1 ocurrencia del texto precedente
* 0 o más ocurrencias del texto precedente.
+ 1 o más ocurrencias de el texto precedente.

Grupos:
(texto) Grupo de texto
Sirve para agrupar texto o para utilizarlo como referencia luego.


Inicio y Fin:
^ Principio de línea.
$ Fin de línea.

Caracteres de escape (no ser considerados especiales):
\car Escapa el carácter car
(por ejemplo \. Considera el punto en sí, no cualquier carácter)


DIOS. ¿Y QUIEN ENTIENDE ESTO QUE NO CONTROLE YA MOD REWRITE?.
Cualquier carácter
[caracteres] Clase de caracteres: Algún carácter de caracteres
[^caracteres] Clase de caracteres: Ningún carácter de caracteres
texto1|texto2 Alternativa: texto1 or texto2

Cuantificadores:
? 0 o 1 ocurrencia del texto precedente
* 0 o más ocurrencias del texto precedente.
+ 1 o más ocurrencias de el texto precedente.????

xxder, vaya lio. Y el resto tambien es asi en la guia. Es una MALA traduccion al español...

¿Alguien me ayuda a entender la sintaxis de mod rewrite? ¿ ? 0 o 1 ocurrencia del texto precedente? ¿Que quiere decir? ¿Es 0, 1, o los dos a la vez? ¿[^caracteres] Clase de caracteres: Ningún carácter de caracteres? Esto... y cual es el caracter de la clase de caracter de caracteres ???


GRACIAS POR AYUDARME. HE ESTADO MIRANDO POR EL DIOS GOOGLE Y NO VEO MUCHO, SOLO WEBS PHP NUKE QUE PIDEN MOD REWRITE EN FOROS...
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Spacebom
Vivo en Xeoweb


Registrado: 17 Oct 2004
Mensajes: 2316
Ubicación: Pucela

MensajePublicado: Dom Sep 11, 2005 5:18 am    Asunto: Responder citando

El Mod_Rewrite es un módulo de Apache que se encarga de rewritear (reescribir) las URL's, es decir convertir path largas con varios querys en URL's planas.

Para poder utilizar el Mod_Rewrite necesitarás acceso completo a tú servidor, o al menos poder editar el archivo .htaccess de tu root, y evidentemente que el módulo esté instalado.

Para desarrollar el rewrite son necesarias 2 partes:

1.- Archivo del servidor (.htaccess) en donde irán las parámetros de reescritura.

2.1.- Un array de entrada donde se introducen las URL's a rewritear

2.2.- Un array de salida, que indica la ruta.

Cita:
Asi por ejemplo el .htaccess tendria una 'regla' del estilo:

RewriteRule ^foros.html modules.php?name=Forums&file=index

Con su correspondiente entrada en el array de salida y entrada:

El array de apertura o entrada comienza asi:

function replace_for_mod_rewrite(&$s) {
$urlin = array(
"'(?<!/)modules.php\?name=Forums&file=index'",
);

Y el de cierre seria asi:

$urlout = array(
"forums.html",
);

$s = preg_replace($urlin, $urlout, $s);
return $s;


Esto está sacado de un breve manual que hice para DN, puedes verlo aquí: http://www.desarrollonuke.org/mod-rewrite.php

Esto es lo básico, si quieres profundizar lo mejorq e puedes hacer es bajarte un Mod_rewrite escrito para alguna aplicación y revisar el código en esa página que te he pasado tienes uno para PHP-Nuke, pero no te preocupes que PHP-Nuke o no el Rewrite es igual. Mira el código y haz pruebas, y si buscas buena documentación, leete la guía oficial del Mod_Rewrite de Apache (en inglés): http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

Saludos y suerte.
_________________
Fórmula F1: Toda la F1 en estado puro.
Velneo: Desarrolla software de gestión empresarial
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Davilac
Soy de Yahoo!


Registrado: 26 Dic 2004
Mensajes: 836
Ubicación: BCN

MensajePublicado: Dom Sep 11, 2005 2:47 pm    Asunto: Responder citando

Te puede ayudar chafardear implementaciones de URLs cortas para scripts como directorios, blogs...
_________________
Servicios profesionales SEO Davilac Internet Marketing
Actualidad Motor
iPhone
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Simon
Me gusta MSN!


Registrado: 30 Abr 2005
Mensajes: 323

MensajePublicado: Dom Sep 11, 2005 5:09 pm    Asunto: Responder citando

Bien, ya conocia todo aquello que me dijeron. Sin embargo, lo que me preocupa es como hacer la sintaxis para poder convertir lo siguiente. Debido a la mala explicacion, aunque por lo menos algo es algo, que encontre en el tutorial español (tambien estoy leyendo el tutorial de Apache de mod rewrite, aunque no se basa tanto en URLs...), intuyo que puede ser esto:

Convetir este tipo de URL:
http://www.uomania.net/index.php?subaction=showfull&id=1126299899&archive=&start_from=&ucat=&

Si las variables son:
http://www.uomania.net/index.php?subaction=XXX&id=YYY&archive=ZZZ&start_from=AAA&ucat=&HHH

A esto, quizas:

RewriteEngine on
Rewrite /index/(.+) /index.php?subaction=showfull&id=$1&archive=&start_from=&ucat=&

De esta manera, a lo mejor se podría hacer el rewrite. No entiendo lo que es el ., ni el +, ni nada similar. Simplemente tengo una vaga nocion, pues la guia no me aclara absolutamente casi nada...
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Simon
Me gusta MSN!


Registrado: 30 Abr 2005
Mensajes: 323

MensajePublicado: Dom Sep 11, 2005 6:11 pm    Asunto: Responder citando

¿Puede ser asi?

rewriterule <secuencia a encontrar : pattern> <cadena para sustituir : substitution>

http://www.uomania.net/index.php?subaction=showfull&id=1125955125 (he quitado el resto del enlace porque no lo entendia xDDD)

Quiero hacer:
index/noticia/1.php

Para esto uso... :
Rewriterule ^index/noticia/(.*)\.php$ index.php?subaction=showfull&id=$1
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Simon
Me gusta MSN!


Registrado: 30 Abr 2005
Mensajes: 323

MensajePublicado: Dom Sep 11, 2005 6:24 pm    Asunto: Responder citando

Nada, tampoco tiene efecto (?)
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Simon
Me gusta MSN!


Registrado: 30 Abr 2005
Mensajes: 323

MensajePublicado: Lun Sep 12, 2005 1:55 pm    Asunto: Responder citando

Nadie tiene respuestas?
Volver arriba
Ver perfil de usuario Enviar mensaje privado
posicionatuweb
Busco en Dmoz


Registrado: 12 Oct 2004
Mensajes: 189
Ubicación: Madrid

MensajePublicado: Dom Sep 18, 2005 2:59 am    Asunto: Responder citando

No es que este muy puesto en esto pero yo he utilizado esto ...
para tu url por ejemplo ...:
index.php?subaction=XXX&id=YYY&archive=ZZZ&start_from=AAA

RewriteRule ^noticia_([a-zA-Z0-9-]*)_([a-zA-Z0-9-]*)_([_a-zA-Z0-9-]*).html index.php?subaction=XXX&id=YYY&archive=ZZZ&start_from=AAA

y el formato quedaria algo asi ( no me pidas que te lo explique, arriba lo hicieron)...

noticia_id_archivo_star_from.html

Con su correspondiente resultado de cada variable.

Saludos.

Shocked
_________________
Directorio PtW - Directorio pymes
Recuerda cumplir las normas de envio.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Simon
Me gusta MSN!


Registrado: 30 Abr 2005
Mensajes: 323

MensajePublicado: Jue Sep 22, 2005 2:22 pm    Asunto: Responder citando

posicionatuweb escribió:
( no me pidas que te lo explique, arriba lo hicieron)...
Shocked


Bueno, lo hicieron, pero no lo que yo buscaba. Lo que queria era saber por ke se usa esto: _([a-zA-Z0-9-]*)_
He investigado un poco y ya tengo idea. De hecho se usa algo similar en PHP (por lo menos en PHP no empiezan por ^y terminan en $)
Pero ya he entendido, entonces por cada variable ke tenga le meto el _([a-zA-Z0-9-]*)_ y listo. No parece dificil...
Volver arriba
Ver perfil de usuario Enviar mensaje privado
thessoro
¿Qué es SEO?


Registrado: 04 Jul 2005
Mensajes: 7

MensajePublicado: Mar Oct 04, 2005 11:49 am    Asunto: Responder citando

No es una mala traducción al español, la traducción es perfecta.

? significa 0 o 1 caracteres, o sea 1 o ninguno.

^hola?$ casa con 'hol' o 'hola'

^hola*$

* significa 0 o más caracteres, o sea que lo anterior casa con 'hol', 'hola', 'holaa', 'holaaa'... etc

^hola+$

+ significa 1 o mas, luego lo anterior casa con 'hola', 'holaa','holaaa'... pero no con 'hol'
_________________
Sacapuntas.net
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Spacebom
Vivo en Xeoweb


Registrado: 17 Oct 2004
Mensajes: 2316
Ubicación: Pucela

MensajePublicado: Mar Oct 04, 2005 1:20 pm    Asunto: Responder citando

Viva #php _para_torpes Wink
_________________
Fórmula F1: Toda la F1 en estado puro.
Velneo: Desarrolla software de gestión empresarial
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Simon
Me gusta MSN!


Registrado: 30 Abr 2005
Mensajes: 323

MensajePublicado: Mar Oct 04, 2005 4:38 pm    Asunto: Responder citando

Spacebom escribió:
Viva #php _para_torpes Wink

Bueno, todos somos torpes alguna vez. Y si no pregunta cuantos webmaster saben siquiera que es MOD REWRITE xD. Bueno, ya mas o menos entendi.

Entonces:
_([a-zA-Z0-9-]*)_

Significa que puede (en la variable) haber letras minusculas, mayusculas y numeros todos juntos y que puede haber algo a continuacion, no?
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Spacebom
Vivo en Xeoweb


Registrado: 17 Oct 2004
Mensajes: 2316
Ubicación: Pucela

MensajePublicado: Mar Oct 04, 2005 8:58 pm    Asunto: Responder citando

Jacruth escribió:
Spacebom escribió:
Viva #php _para_torpes Wink

Bueno, todos somos torpes alguna vez.


No Jacruth, no lo decía por tí, no me malinterpretes, es que thessoro si no me equivoco forma parte de una comunidad de PHP (chat y web) llamada "php_para_torpes", un excelente sitio de referencia: http://www.php-hispano.net/
_________________
Fórmula F1: Toda la F1 en estado puro.
Velneo: Desarrolla software de gestión empresarial
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Simon
Me gusta MSN!


Registrado: 30 Abr 2005
Mensajes: 323

MensajePublicado: Mie Oct 05, 2005 2:29 pm    Asunto: Responder citando

Ah! Genial. Pues mira, voy a darme una vuelta por esa web.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
erpepe
Me he pasado a noXtrum


Registrado: 02 Jun 2005
Mensajes: 263

MensajePublicado: Vie Oct 28, 2005 1:03 pm    Asunto: Responder citando

No tienes problema con modrewrite tu problema son las expresiones regulares que no es lo mismo.
las expresiones regulares se utilizan para buscar patrones coincidentes dentro de cadenas de texto, si tienes un directorio con 10.000 archivos y necesitas buscar solo los que tienen extension doc buscarias *.doc estas usando una expresion regular, el problema se complica ya que puedes usar comodines, reglas, agruparlas y puedes situarlas en una posicion.
Te aconsejo que busques un manual de expresiones regulares.
puedes encontrar informacion y ayuda en www.helicontech.com/forum/
pero ten encuenta que no se de un foro de mod_rewrite, es para isapi_rewrite para windows, que tiene sus particularidades, pero las expresiones son las mismas.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mostrar mensajes de anteriores:   
Publicar nuevo tema   Responder al tema    Foros de discusión -> Lenguajes de Programación Web Todas las horas son GMT
Ir a página 1, 2  Siguiente
Respuesta Rápida y Acciones
 

 

Página 1 de 2


Cambiar a:  
Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro

 


Logo diseñado por iLevante
Powered by phpBB © 2001, 2009 phpBB Group