Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/06/2012, 01:30
rbczgz
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Otra consulta sobre URL amigable, pero para varias URL's

Hola amig@s,

Por más que he buscado, he hecho pruebas y de todo, no consigo solucionar este tema. La situación es la siguiente:

Necesito hacer varias URL's amigables en el mismo sitio, pero sin que afecte a los subdirectorios y que funcionen igual si el usuario coloca '/' al final o no.

Tengo un .htaccess así:

Código .htaccess:
Ver original
  1. <IfModule mod_rewrite.c>
  2. Options +FollowSymLinks
  3. RewriteEngine on
  4.  
  5. RewriteRule ^(.*)/enlaces$ miembros/enlaces_.php?ref=$1 [L]
  6. RewriteRule ^(.*)/otra_pagina$ miembros/otra_pagina_.php?ref=$1 [L]
  7.  
  8.  
  9. RewriteRule ^(.*)/$ miembros/index.php?ref=$1 [L]
  10.  
  11. </IfModule>

Lo que pretendo con esto es que el visitante acceda a www.dominio.com/usuario/enlaces y así con todas...

Así, aparentemente funciona, pero he tenido que añadir en los subdirectorios otro .htaccess así (por probar, y parece que funciona)

Código .htaccess:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteBase /
  4.  
  5. RewriteCond %{REQUEST_FILENAME} !-f
  6. RewriteCond %{REQUEST_FILENAME} !-d
  7. RewriteCond %{REQUEST_URI} !^/index.php
  8. RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
  9. RewriteRule ^(.+)/?$ index.php?ref=$1 [L]

Este último lo he copiado de este post y, aunque no consigo entender lo de las benditas expresiones regulares, más o menos entiendo lo que hace.

Ahora bien, lo que yo necesito es que las URL's funcionen de esta forma:

El usuario normalmente escribe: www.dominio.com/usuario y tal como lo tengo, da error 404, es necesario que el usuario escriba www.dominio.com/usuario/ y ahí es donde está el problema, con el segundo código funciona bien sin la '/', pero sólo cuando van a la dirección principal, por eso he tenido que probar con el primero, pero en ese no funciona si no escriben la '/' al final.

El asunto es que, como no consigo entender bien las expresiones regulares (y me he releído como 10 tutoriales), no hay manera de hacer funcionar esto de las URL's, por eso mi pregunta es:

¿Alguien me puede echar una mano con el código que debería utilizar para que esto funcione? Si es posible, y alguien me puede ayudar, y no es mucho pedir, agradecería muchísimo que aparte de enseñarme el código, me lo explicara como a un niño de 2 años, a ver si consigo entenderlo.

Muchísimas gracias por adelantado.
.