Migro un sitio html estático a drupal CMS, la mayor parte del contenido simplemente copié el html por ahora y quiero dejarlo como está y hacer que funcionen los enlaces relativos a los archivos pdf. Drupal tiene todos los archivos en este directorio: (copié todo el árbol de ANTIGUOS SUBDIRS; bueno, quiero conservarlo)
DOCROOT/sites/mydomain.xyz/files/FORMER/SUB/DIRS/filename.pdf
Entonces todos los enlaces relativos en el contenido del CMS ahora se convierten en:
http://mydomain.xyz/node/FORMER/SUB/DIRS/filename.pdf
Quiero comprobar si el archivo existe y luego reescribir la URL.
RewriteEngine On
RewriteCond /var/www/mydomain.xyz/sites/mydomain.xyz/files/%{REQUEST_URI MINUS "node/"} -f
RewriteRule (.*)$ /sites/mydomain.xyz/files/$1 [R]
¿Cómo podría lograr eso?
Respuesta1
Necesitará RewriteCond
referencias retrospectivas. Por favor mirael manualpara detalles.
Aproximadamente (pero no tengo forma de probarlo en este momento):
RewriteCond %{REQUEST_URI MINUS} ^/node(.*)
RewriteCond /var/www/mydomain.xyz/sites/mydomain.xyz/files/%1 -f
...
Es %1
una RewriteCond
referencia inversa, a diferencia de una RewriteRule
referencia inversa (que sería $1
)
Respuesta2
funciona de esa manera
RewriteCond %{REQUEST_URI} ^/node(.*)
RewriteCond /var/www/schottdorf.de/sites/schottdorf.de/files%1 -f
RewriteRule .* /sites/schottdorf.de/files/%1 [L]
(pero desafortunadamente olvidé que hay otro nivel de subdirectorios directamente debajo de docroot que Apache no puede conocer).
Quiero saber si configuro el alias de ruta de Drupal para todos los documentos de nivel superior. Ya veré