
Я переношу статический 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 для всех документов верхнего уровня - я посмотрю