У меня apache 2.4, и я использую файлы RewriteMap DBM.
то есть:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteMap examplemap "dbm:/etc/httpd/conf/rewrite.dbm"
RewriteCond ${examplemap:$1} !=""
RewriteRule ^(.*) /${examplemap:$1} [R=301,L]
</IfModule>
<VirtualHost *:80>
DocumentRoot /var/www/sites/me
Options +FollowSymLinks +Indexes
RewriteEngine On
RewriteOptions Inherit
RewriteMap redirects "dbm:/etc/httpd/conf/redirects.dbm"
RewriteCond ${redirects:$1} !=""
RewriteRule ^(/.*) /${redirects:$1} [R=301,L]
</VirtualHost>
Мне нужно доказать, что второй файл dbm (redirects.dbm) не загружается в память при выполнении запроса и условие находится в первом файле dbm (rewrite.dbm)
Насколько мне известно о различных чтениях, которые я сделал, оба файла загружаются в память. Это правильно?
Причина этого в том, что rewrite.dbm будет содержать всего около 300 перезаписей, но будет часто меняться (ежедневно). Redirects.dbm никогда не изменится после загрузки и будет содержать около 30 000 перенаправлений.
Клиент хочет убедиться, что вторые файлы DBM не будут загружены в память и / или замедлить время запроса, если первый файл DBM - это все, что нужно.
Я думаю, что поток будет примерно таким:
IF / abc находится в конце rewrite.dbm и показывает страницу
IF / abc отсутствует в rewrite.dbm search redirects.dbm
IF / abc не входит ни в один из вариантов 404
Надеюсь, что я спрашиваю, ясно.