Tengo un htaccess en la raiz de mi pagina el cual se encarga de centralizar todo en un archivo index el cual recibe como parametro la url completa la cual luego proceso por fragmentos.
es decir ti tengo una url como esta
www.mypage.com/param1/param2/param3
la genera de esta manera
www.mypage.com?uri=param1/param2/param3
el problema radica cuando uno de los parametros coincide con el nombre una una carpeta entonces el htaccess no funciona y envez de pasame la ruta al index entra en la carpeta.
Código:
Options +FollowSymLinks RewriteEngine on <IfModule mod_rewrite.c> # redirecionar las url para evitar duplicacion # rewritecond %{http_host} ^www.misitio.com [NC] # rewriterule ^(.*)$ http://www.misitio.com/$1 [R=301,NC] RewriteBase /mypage/forum/ RewriteCond %{THE_REQUEST} /index\.php\ HTTP/ RewriteRule ^index\.php$ /mypage/forum/ [R=301,L] RewriteCond %{THE_REQUEST} /index\ HTTP/ RewriteRule ^index$ /mypage/forum/ [R=301,L] # Reescribir las url con url enriquecidas # Condicion para QUERY_STRING vacio RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{QUERY_STRING} ^$ RewriteRule ^(.+)$ index.php?uri=$1 [QSA,L] # Condicion para QUERY_STRING con argumentos RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^(.+)$ index.php?uri=$1?%1 [QSA,L] </IfModule>