Página 1 de 1

Mod_rewrite Dinámico

Publicado: 04 Jun 2006, 19:51
por Yosuke
Buenass

Utilizo el mod_rewrite para hacer las direcciones dinámicas con el nombre del post en la url,
ejemplo: si vas a un topic la direccion se sustituye por: http://www.tuweb.com/nombre-del-topic-vp28.html (siendo 28 el nº del topic).

Lo conseguí de este gran foro, Amigos, Google, phpBB y un Sitemap y el enlace para descargarlo es este.

Todo me va bien, a excepción de todo lo que intento hacer yo, que es personalizar tb otras direcciones del foro, como de index.php a index.html

poniendo en el page_header.php

Código: Seleccionar todo

			'/(?<!\/)viewtopic.php\?p=([0-9]+)&highligh=([0-9]+)<\/a>/e',

y 

			"make_url_friendly('\\5') . 'index.html' . if_query('\\1') . stripslashes('\\4\\5') . '</a>'");

donde corresponde y luego en el .htaccess 

RewriteRule [.]index index.php

no me funciona, x ke realmente no tengo ni idea que hace el make_url_friendly('\\5') ni el if_query('\\1') ni el stripslashes('\\4\\5') , ni de al principio ke todo termina en . '</a>/e'


se ke if_query hará referencia a alguna query, pero a cual? y x ke, si veis el archivo, hay algunos ke ponen un 1 y entras un 2, y tb, se ke el stripslashes es para cambiar las barras \, pero ke tiene ke ver los numeros ke hay dentro? ke son \\4\\5 y otras veces otros? como funciona? Tengo mis nociones de php con las que me manejo, pero esto se me escapa.

Gracias, de antemano, salu2!

Respuesta: Mod_rewrite Dinámico

Publicado: 04 Jun 2006, 20:07
por Nazcar
exactamente que es lo que quieres hacer? convertir el index.php a index.html? solo eso?

Respuesta: Mod_rewrite Dinámico

Publicado: 05 Jun 2006, 16:39
por Yosuke
Buenas Nazcar,

sí, quiero saber como va un poco eso y quiero saber como, con ese sistema ya que lo utilizo de forma satisfactoria para hacer el mod_rewrite en los topics, como pasar .php a .html y tb puesto a ello pues masar de

profile.php?mode=viewprofile&u=2

algo como: perfil-usuario-2.html

Me puedes indicar un poco como funciona eso?

Gracias!

Respuesta: Mod_rewrite Dinámico

Publicado: 05 Jun 2006, 21:43
por Nazcar
vete leyendo esta web sabras como funciona

http://www.peoplecnc.com/mod_rewrite_avanzado.html

Respuesta: Mod_rewrite Dinámico

Publicado: 05 Jun 2006, 22:35
por Yosuke
Buenas Nazcar, gracias x contestar, pero yo con el mod_rewrite "estático" he podido hacer todo lo que me he planteado para modificar urls, pero ahí tp me explican como con el código que utilizo que es de este portal y que vosotros utilizáis, como poder hacer el index.php del foro phpbb a un index.html


Salu2

Respuesta: Mod_rewrite Dinámico

Publicado: 06 Jun 2006, 11:16
por Nazcar
En el page_header.php lo único que van son 2 cosas 1 la url de entrada la que realmente existe y luego la url convertida,bueno convertida a medias puesto que solo es la que se muestra y no es real.Luego en el .htaccess va realmente el funcionamiento del mod_rewrite indicando si en el navegador aparece esta dirección realmente quiere decir esta otra.Un ejemplo practico:


Url Real ha modificar:

Código: Seleccionar todo

'/(?<!\/)index.php((&)|(&)){0,1}([^>]+>)(.*?)<\/a>/e',
eso es el index con cualquier serie de letras números como puede ser el SID

Url De salida o ya modificada

Código: Seleccionar todo

			"make_url_friendly('') . 'portal.html' . if_query('\\1') . stripslashes('\\4\\5') . '</a>'",
con eso indicamos que use la funcion previamente declarada make_url_friendly para "convertirla en index.html añadiendo la serie de letras números de la url ha convertir.Bien con eso todo lo que sea index.php se mostrara index.html ya tenemos una parte echa,ahora bien index.html no existe realmente es solo una salida modificada ,como le indicamos al servidor que url real tiene que usar? Pues eso lo indicamos en el .htaccess con el siguiente código:

Código: Seleccionar todo

RewriteRule index.html index.php
como puedes observas solo traduzco el index no la seria de letras números que bien ha continuacion,puesto que en el index eso ya da igual,por que el id de user ya se pasa con la cockie.

Pues bien ya tenemos el index.php convertido a index.html.

Veamos que pasaría si solo usamos el .htaccess sin "convertir" direcciones desde el page_header.php:

Añade esta linea a .htaccess

Código: Seleccionar todo

RewriteRule ^perfil-usuario([0-9]+)\.html$ /profile.php?mode=viewprofile&u=$1  [QSA,L]
pues ya tenemos otra url traducida.Ahora mira que pasa si usas http://tuurl/perfil-usuario2.html.Pues si aparecerá el perfil del admin principal del foro puesto que realmente lo que estamos haciendo es traducir la url real http://tuurl/profile.php?mode=viewprofile&u=2

Solo quedaría traducirla en page_header.php,pero eso te lo dejo para que vayas haciéndolo tu y así aprendiendo el funcionamiento de esa funcion

Respuesta: Mod_rewrite Dinámico

Publicado: 10 Jun 2006, 17:00
por Yosuke
Buenas Nazcar,

graciass x todo, pero no consigo hacer lo de los usuarios...
¿como se si lo que hay dentro de los paréntesis make_url_friendly es un número u otro, al igual en el if_query o en stripslashes?

Gracias

Respuesta: Mod_rewrite Dinámico

Publicado: 10 Jun 2006, 18:35
por Nazcar
como en todo lenguaje de programacion y mas en prog buscando caracteres y substituyendo se ha de indicar que numero de caracter modificar o en que numero empezar y en que numero finalizar,siempre teniendo en cuenta que en programacion el 1 caracter es 0 no es el 1 como en el mundo normal