apache RewriteCond variável para partes de REQUEST_URI

0

Eu migro um site html estático para o drupal CMS, a maioria dos conteúdos eu copiei o html por enquanto e quero deixá-lo como está e fazer os links relativos aos arquivos em pdf funcionando. O Drupal tem todos os arquivos neste diretório: (Eu copiei toda a árvore do FORMER SUB DIRS - legal, quero manter isso)

 DOCROOT/sites/mydomain.xyz/files/FORMER/SUB/DIRS/filename.pdf

Assim, todos os links relativos no conteúdo do CMS se tornam agora:

 http://mydomain.xyz/node/FORMER/SUB/DIRS/filename.pdf

Quero verificar se o arquivo existe e, em seguida, reescrevo o URL

RewriteEngine On
RewriteCond     /var/www/mydomain.xyz/sites/mydomain.xyz/files/%{REQUEST_URI MINUS "node/"} -f
RewriteRule     (.*)$ /sites/mydomain.xyz/files/$1  [R]

Como eu poderia conseguir isso?

    
por groovehunter 07.03.2011 / 12:07

2 respostas

2

Você precisará do RewriteCond de referências anteriores. Consulte o manual para obter detalhes.

Aproximadamente (mas não tenho como testá-lo no momento):

RewriteCond     %{REQUEST_URI MINUS} ^/node(.*)
RewriteCond     /var/www/mydomain.xyz/sites/mydomain.xyz/files/%1 -f
...

A %1 é uma referência anterior de RewriteCond , em oposição a uma referência anterior RewriteRule (que seria $1 )

    
por 07.03.2011 / 12:44
0

funciona assim

RewriteCond     %{REQUEST_URI} ^/node(.*)
RewriteCond     /var/www/schottdorf.de/sites/schottdorf.de/files%1 -f
RewriteRule     .* /sites/schottdorf.de/files/%1  [L]

(mas infelizmente eu esqueci que existe outro nível de subdiretórios diretamente sob docroot que o apache não pode saber).

Eu quero descobrir se defini o alias do caminho drupal para todos os documentos de nível superior - verei

    
por 07.03.2011 / 13:44