Переменная Apache RewriteCond для частей REQUEST_URI

Переменная Apache RewriteCond для частей REQUEST_URI

Я переношу статический html-сайт в drupal CMS, большую часть контента я просто скопировал html на данный момент и хочу оставить все как есть и сделать так, чтобы относительные ссылки на pdf-файлы работали. Drupal имеет все файлы в этом каталоге: (Я скопировал все дерево БЫВШИХ ПОДКАТАЛОГОВ - здорово, хочу сохранить это)

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

Таким образом, все относительные ссылки в содержимом CMS теперь становятся:

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

Я хочу проверить, существует ли файл, а затем переписать URL-адрес

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

Как мне этого добиться?

решение1

Вам понадобятся RewriteCondобратные ссылки. Пожалуйста, см.руководстводля получения подробной информации.

Примерно (но сейчас у меня нет возможности проверить):

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

Это %1обратная RewriteCondссылка, в отличие от RewriteRuleобратной ссылки (которая была бы $1)

решение2

работает таким образом

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

(но, к сожалению, я забыл, что есть еще один уровень подкаталогов непосредственно под docroot, о котором Apache не может знать.)

Я хочу выяснить, могу ли я задать псевдоним пути Drupal для всех документов верхнего уровня - я посмотрю

Связанный контент