| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Simon Me gusta MSN!
Registrado: 30 Abr 2005 Mensajes: 323
|
Publicado: Dom Sep 11, 2005 4:53 am Asunto: ¿Alguien me ayuda a entender la sintaxis de mod rewrite? |
|
|
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 |
|
 |
Spacebom Vivo en Xeoweb

Registrado: 17 Oct 2004 Mensajes: 2316 Ubicación: Pucela
|
Publicado: Dom Sep 11, 2005 5:18 am Asunto: |
|
|
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 |
|
 |
Davilac Soy de Yahoo!

Registrado: 26 Dic 2004 Mensajes: 836 Ubicación: BCN
|
|
| Volver arriba |
|
 |
Simon Me gusta MSN!
Registrado: 30 Abr 2005 Mensajes: 323
|
Publicado: Dom Sep 11, 2005 5:09 pm Asunto: |
|
|
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 |
|
 |
Simon Me gusta MSN!
Registrado: 30 Abr 2005 Mensajes: 323
|
Publicado: Dom Sep 11, 2005 6:11 pm Asunto: |
|
|
¿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 |
|
 |
Simon Me gusta MSN!
Registrado: 30 Abr 2005 Mensajes: 323
|
Publicado: Dom Sep 11, 2005 6:24 pm Asunto: |
|
|
| Nada, tampoco tiene efecto (?) |
|
| Volver arriba |
|
 |
Simon Me gusta MSN!
Registrado: 30 Abr 2005 Mensajes: 323
|
Publicado: Lun Sep 12, 2005 1:55 pm Asunto: |
|
|
| Nadie tiene respuestas? |
|
| Volver arriba |
|
 |
posicionatuweb Busco en Dmoz

Registrado: 12 Oct 2004 Mensajes: 189 Ubicación: Madrid
|
Publicado: Dom Sep 18, 2005 2:59 am Asunto: |
|
|
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.
 _________________ Directorio PtW - Directorio pymes
Recuerda cumplir las normas de envio. |
|
| Volver arriba |
|
 |
Simon Me gusta MSN!
Registrado: 30 Abr 2005 Mensajes: 323
|
Publicado: Jue Sep 22, 2005 2:22 pm Asunto: |
|
|
| posicionatuweb escribió: | ( no me pidas que te lo explique, arriba lo hicieron)...
 |
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 |
|
 |
thessoro ¿Qué es SEO?
Registrado: 04 Jul 2005 Mensajes: 7
|
Publicado: Mar Oct 04, 2005 11:49 am Asunto: |
|
|
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 |
|
 |
Spacebom Vivo en Xeoweb

Registrado: 17 Oct 2004 Mensajes: 2316 Ubicación: Pucela
|
Publicado: Mar Oct 04, 2005 1:20 pm Asunto: |
|
|
Viva #php _para_torpes  _________________ Fórmula F1: Toda la F1 en estado puro.
Velneo: Desarrolla software de gestión empresarial |
|
| Volver arriba |
|
 |
Simon Me gusta MSN!
Registrado: 30 Abr 2005 Mensajes: 323
|
Publicado: Mar Oct 04, 2005 4:38 pm Asunto: |
|
|
| Spacebom escribió: | Viva #php _para_torpes  |
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 |
|
 |
Spacebom Vivo en Xeoweb

Registrado: 17 Oct 2004 Mensajes: 2316 Ubicación: Pucela
|
Publicado: Mar Oct 04, 2005 8:58 pm Asunto: |
|
|
| Jacruth escribió: | | Spacebom escribió: | Viva #php _para_torpes  |
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 |
|
 |
Simon Me gusta MSN!
Registrado: 30 Abr 2005 Mensajes: 323
|
Publicado: Mie Oct 05, 2005 2:29 pm Asunto: |
|
|
| Ah! Genial. Pues mira, voy a darme una vuelta por esa web. |
|
| Volver arriba |
|
 |
erpepe Me he pasado a noXtrum
Registrado: 02 Jun 2005 Mensajes: 263
|
Publicado: Vie Oct 28, 2005 1:03 pm Asunto: |
|
|
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 |
|
 |
|