Foros del Web » Administración de Sistemas » Apache »

Mod_rewrite, ¿hay que hacer algo del lado de php?

Estas en el tema de Mod_rewrite, ¿hay que hacer algo del lado de php? en el foro de Apache en Foros del Web. Hola, he conseguido reescribir las direcciones de mis páginas con el mod rewrite, pero me encuentro ante un problema que intuyo tiene que ser de ...
  #1 (permalink)  
Antiguo 01/06/2005, 11:49
yoe
 
Fecha de Ingreso: marzo-2003
Mensajes: 74
Antigüedad: 21 años, 1 mes
Puntos: 0
Mod_rewrite, ¿hay que hacer algo del lado de php?

Hola,

he conseguido reescribir las direcciones de mis páginas con el mod rewrite, pero me encuentro ante un problema que intuyo tiene que ser de fácil solución.

Lo coloco en el foro de php porque no tengo claro (no creo) que sea problema del .htaccess y el servidor, sino más bien de hacer algo de parte de php.

Lo que he hecho es lo siguiente:

He creado un directorio llamado /s/ y dentro he colocado el archivo s.php y el nuevo .htaccess.

En casi toda la documentación que he leído, el .htaccess debía estar en un nivel superior a la página que se iba a reescribir. En este caso, lo coloqué todo al mismo nivel y me funciona.

El código del .htaccess es:

Cita:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^s-(.*)/p-(.*)\.html$ /s.php?c=$1&p=$2
RewriteRule ^s-(.*)/a-(.*)\.html$ /s.php?c=$1&a=$2
Rewriterule ^s-(.*)\.html$ s.php?c=$1
... de forma que reescribe ...

Cita:
s-categoria/p-pagina.html a /s.php?c=categoria&p=pagina
s-categoria/a-articulo.html a /s.php?c=categoria&a=articulo
s-categoria.html a /s.php?c=categoria

El archivo s.php lo he programado para que ponga los enlaces así:

Cita:
<a href="s-categoria/p-pagina.html">Título categoría</a>
<a href="s-categoria/a-articulo.html">Título página</a>
<a href="s-categoria.html">Titulo categoría</a>

Ahora bien, me encuentro con dos problemas:

-El primero es que no encuentra el *.css(está en la carpeta /s/)
-El segundo, es que una vez cargada la página, los enlaces que escribe no son del tipo s-categoria/a-articulo.html(como programé en el s.php) sino s-categoria/s.php?c=categoria&a=articulo

Lo podéis comprobar con estas dos direcciones:

Reescrita: http://www.innatia.com/s/s-henna/a-historia.html (no carga el *.css y escribe mal las url (ej:http://www.innatia.com/s/s-henna/s.p...nna&a=historia )

La misma sin reescribir: http://www.innatia.com/s/s.php?c=henna&a=historia (carga el *.css y escribe bien las url: (ej:http://www.innatia.com/s/s-henna.html )


¿A qué se puede deber este error?

¿Tal vez hay que hacer algo del lado de php?

Gracias,
  #2 (permalink)  
Antiguo 02/06/2005, 11:35
 
Fecha de Ingreso: diciembre-2004
Mensajes: 41
Antigüedad: 19 años, 4 meses
Puntos: 0
Eso es porque tus vinculos a links, imagegen, css, etc. son de tipó domumento y no absoutos (desde la raiz)

Osea:

css/css1.css

tiene que quedar así

/css/css1.css

haciendo eso en los archivos que no te cargan funcionará.

y para los enlaces coloca esto en el head de tus pages:
Código PHP:
<BASE href="http://<?php echo $_SERVER['SERVER_NAME']."/".$_SERVER['PHP_SELF'?>">
  #3 (permalink)  
Antiguo 02/06/2005, 14:07
yoe
 
Fecha de Ingreso: marzo-2003
Mensajes: 74
Antigüedad: 21 años, 1 mes
Puntos: 0
Hola WeiChafe,

gracias a tu ayuda pude solucionar el problema.

Se trataba de que estaba cargando el archivo http://www.innatia.com/s.php en vez de http://www.innatia.com/s/s.php

Esto lo supe utilizando en el body las funciones $_SERVER['SERVER_NAME']."/".$_SERVER['PHP_SELF'] .

Para quien le pueda servir, los cambios que he hecho en el htaccess...

Cita:
RewriteRule ^s-(.*)/p-(.*)\.html$ /s/s.php?c=$1&p=$2
RewriteRule ^s-(.*)/a-(.*)\.html$ /s/s.php?c=$1&a=$2
Rewriterule ^s-(.*)\.html$ /s/s.php?c=$1
y en el archivo s.php...

Cita:
<a href="/s/s-categoria/p-pagina.html">Título categoría</a>
<a href="/s/s-categoria/a-articulo.html">Título página</a>
<a href="/s/s-categoria.html">Titulo categoría</a>
Por cierto, también probé antes de postear con vínculos absolutos y seguía sin funcionar correctamente. El problema estaba en que yo modificaba el archivo /s/s.php pero me cargaba el /s.php por lo que no tenían efecto los cambios :D

Ya en referencia al .htacces, alguien sabe por qué con la anterior configuración reescribía y redirigía al http://www.innatia.com/s.php y no al http://www.innatia.com/s/s.php ?

Saludos,
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




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