Definitivamente soy nuevo en esto de la reescritura de mods.
Nota: aquí la URL es común y todas las carpetas y subcarpetas están en el mismo host.
La URL que utiliza un usuario para acceder a su página eshttp://myurl.com/1234/filename.jpg
Aquí el nombre de la subcarpeta es un número entero, único y generado dinámicamente por otra aplicación.
La subcarpeta almacena imágenes específicas de un usuario individual.
Entonces la estructura de carpetas es la siguiente
main1 = document root
main2 is another folder within main1 or document root.
/main1/1234/filename.jpg
/main1/5678/filename.jpg
/main1/2345/filename.jpg
/main1/1212/filename.jpg
/main1/main2/2367/filename.jpg
/main1/main2/8790/filename.jpg
/main1/main2/9966/filename.jpg
Entonces, quiero escribir una regla de reescritura para que si un usuario intenta escribir
http://myurl.com/1234/filename.jpg,
la regla de reescritura deberá buscar dónde está el archivo y atender la solicitud; entonces, para la solicitud http:/myurl.com/1234/filename.jpg, la página real se encuentra en /main1/1234/filename.jpg y luego debe servir esa página desde esa carpeta.
Entonces, si otro usuario hace una solicitud comohttp://myurl.com/9966/nombredearchivo.jpg, debería servir la página desde el siguiente destino /main1/main2/9966/filename.jpg
Avíseme si la pregunta aún no está clara.
Esto es lo que he hecho hasta ahora y no funciona en absoluto.
RewriteCond {DOCUMENT_ROOT}/%{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ {DOCUMENT_ROOT}/$1 [L]
RewriteCond {DOCUMENT_ROOT}/main2/%{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ {DOCUMENT_ROOT}/main2/$1 [L]
cualquier ayuda es realmente agradecida
EDITAR @ShaneMadden, busque los detalles. La configuración se encuentra en el archivo .htaccess; por favor encuentre los detalles de .htaccess
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/main1/\/.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(main1)(/\/.+)$ $1/main2/\$2
EDITAR:
Olivier, gracias por ayudarme. Encuentre los detalles a continuación.
httpd.conf
DocumentRoot "/WebServer/Documents"
Lista de directorios
ls -lRt /WebServer/Documents/
-rw-r--r-- index.html
-rw-r--r-- .htaccess
drwxrwxrwx main1
drwxrwxrwx 456231 (Is a folder)
./WebServer/Documents/main1/:
drwxrwxrwx 566432
./WebServer/Documents/456231/:
-rwxrwxrwx one.jpg
./WebServer/Documents/main1/566432:
-rwxrwxrwx one.jpg
Archivos .htaccess
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} -f
RewriteRule (.*) %{DOCUMENT_ROOT}/$1 [L]
RewriteCond %{DOCUMENT_ROOT}/main1/%{REQUEST_FILENAME} -f
RewriteRule (.*) %{DOCUMENT_ROOT}/main1/$1 [L]
URL de acceso -->http://localhost:80/
::1 - - [26/Nov/2011:10:52:54 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (3) [perdir /WebServer/Documents/] strip per-dir prefix: /WebServer/Documents/ ->
::1 - - [26/Nov/2011:10:52:54 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (3) [perdir /WebServer/Documents/] applying pattern '(.*)' to uri ''
::1 - - [26/Nov/2011:10:52:54 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (4) [perdir /WebServer/Documents/] RewriteCond: input='/WebServer/Documents//WebServer/Documents/' pattern='-f' => not-matched
::1 - - [26/Nov/2011:10:52:54 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (3) [perdir /WebServer/Documents/] strip per-dir prefix: /WebServer/Documents/ ->
::1 - - [26/Nov/2011:10:52:54 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (3) [perdir /WebServer/Documents/] applying pattern '(.*)' to uri ''
::1 - - [26/Nov/2011:10:52:54 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (4) [perdir /WebServer/Documents/] RewriteCond: input='/WebServer/Documents/main1//WebServer/Documents/' pattern='-f' => not-matched
::1 - - [26/Nov/2011:10:52:54 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (1) [perdir /WebServer/Documents/] pass through /WebServer/Documents/
::1 - - [26/Nov/2011:10:52:54 +0000] [localhost/sid#10090f128][rid#10099c8a8/subreq] (3) [perdir /WebServer/Documents/] strip per-dir prefix: /WebServer/Documents/index.html -> index.html
::1 - - [26/Nov/2011:10:52:54 +0000] [localhost/sid#10090f128][rid#10099c8a8/subreq] (3) [perdir /WebServer/Documents/] applying pattern '(.*)' to uri 'index.html'
::1 - - [26/Nov/2011:10:52:54 +0000] [localhost/sid#10090f128][rid#10099c8a8/subreq] (4) [perdir /WebServer/Documents/] RewriteCond: input='/WebServer/Documents//WebServer/Documents/index.html' pattern='-f' => not-matched
::1 - - [26/Nov/2011:10:52:54 +0000] [localhost/sid#10090f128][rid#10099c8a8/subreq] (3) [perdir /WebServer/Documents/] strip per-dir prefix: /WebServer/Documents/index.html -> index.html
::1 - - [26/Nov/2011:10:52:54 +0000] [localhost/sid#10090f128][rid#10099c8a8/subreq] (3) [perdir /WebServer/Documents/] applying pattern '(.*)' to uri 'index.html'
::1 - - [26/Nov/2011:10:52:54 +0000] [localhost/sid#10090f128][rid#10099c8a8/subreq] (4) [perdir /WebServer/Documents/] RewriteCond: input='/WebServer/Documents/main1//WebServer/Documents/index.html' pattern='-f' => not-matched
::1 - - [26/Nov/2011:10:52:54 +0000] [localhost/sid#10090f128][rid#10099c8a8/subreq] (1) [perdir /WebServer/Documents/] pass through /WebServer/Documents/index.html
2.)http://localhost:80/566432/one.jpg
::1 - - [26/Nov/2011:10:59:28 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (3) [perdir /WebServer/Documents/] add path info postfix: /WebServer/Documents/566432 -> /WebServer/Documents/566432/one.jpg
::1 - - [26/Nov/2011:10:59:28 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (3) [perdir /WebServer/Documents/] strip per-dir prefix: /WebServer/Documents/566432/one.jpg -> 566432/one.jpg
::1 - - [26/Nov/2011:10:59:28 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (3) [perdir /WebServer/Documents/] applying pattern '(.*)' to uri '566432/one.jpg'
::1 - - [26/Nov/2011:10:59:28 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (4) [perdir /WebServer/Documents/] RewriteCond: input='/WebServer/Documents//WebServer/Documents/566432' pattern='-f' => not-matched
::1 - - [26/Nov/2011:10:59:28 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (3) [perdir /WebServer/Documents/] add path info postfix: /WebServer/Documents/566432 -> /WebServer/Documents/566432/one.jpg
::1 - - [26/Nov/2011:10:59:28 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (3) [perdir /WebServer/Documents/] strip per-dir prefix: /WebServer/Documents/566432/one.jpg -> 566432/one.jpg
::1 - - [26/Nov/2011:10:59:28 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (3) [perdir /WebServer/Documents/] applying pattern '(.*)' to uri '566432/one.jpg'
::1 - - [26/Nov/2011:10:59:28 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (4) [perdir /WebServer/Documents/] RewriteCond: input='/WebServer/Documents/main1//WebServer/Documents/566432' pattern='-f' => not-matched
::1 - - [26/Nov/2011:10:59:28 +0000] [localhost/sid#10090f128][rid#1009918a8/initial] (1) [perdir /WebServer/Documents/] pass through /WebServer/Documents/566432
Respuesta1
¡¡Casi lo logras!!
¡¡Olvidaste el "%"!!
Y ^(.*)$
solo es lo mismo, (.*)
así que esto es lo que debería funcionar:
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} -f
RewriteRule (.*) %{DOCUMENT_ROOT}/$1 [L]
RewriteCond %{DOCUMENT_ROOT}/main2/%{REQUEST_FILENAME} -f
RewriteRule (.*) %{DOCUMENT_ROOT}/main2/$1 [L]
Dime si funciona ;)