Hola tengo esta estructura mas o menos así:
miservidor └miweb1 │└micarpetapublica │ └subcarpetapublica │ └imagen.png │└micarpetaprivada │└index.php │└.htaccess └miweb2
para acceder a mi web1 uso la siguiente URL: http://miservidor/miweb1. Cuando realizo pruebas desde el localhost este configuración del .htaccess es óptima:
RewriteEngine On RewriteCond $1 !^(micarpetapublica) RewriteCond %(REQUEST_FILENAME) !-d RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_FILENAME) !-l RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
Así si uso la URL: http://localhost/miweb1/parametro1/parametro2/parametro3/../parametroN la cadena parametro1/parametro2/parametro3/../parametroN es usada como un $GET['url'] de index.php donde es direccionado gracias a la ultima linea. Ahora si se usase la siguiente URL: http://localhost/miweb1/micarpetapublica/subcarpetapublica/imagen.png accede directamente a la ruta digitada, puesto que esta no deseo filtrarla por el index.php.
Como dije esto funciona a la perfección en el localhost, pero a la hora de usar el mismo .htaccess en http://miservidor no funciona:
http://miservidor/miweb1/parametro1/parametro2/parametro3/../parametroN genera un error 404 al igual que http://miservidor/miweb1/micarpetapublica/subcarpetapublica/imagen.png solo funciona si utilizo la siguiente sintaxis:
http://miservidor/miweb1/index.php?parametro1/parametro2/parametro3/../parametroN
Aunque podría vivir usando el index.php?loquesea... no deseo pasar por el index la ruta a la imagen publica.
He usado varias soluciones sin resultados satifactorios: Parala linea 6:
RewriteRule ^([^/]+)/?$ index.php?id=$1 [QSA] RewriteRule ^([^/]+)/?$ index.php?id=$1 [L]
y otras usando combinaciones de:
Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase /
Respuestas
Hola @NFandio, ¿has probado a configurar un vhost que tenga como directorio raíz a /web1?, ¿o es imprescindible la estructura que has planteado?
@hm_sergio