Назад | Перейти на главную страницу

Небольшая путаница в отношении файлов DBM и их работы

У меня 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 - это все, что нужно.

Я думаю, что поток будет примерно таким:

http://example.com/abc

IF / abc находится в конце rewrite.dbm и показывает страницу

IF / abc отсутствует в rewrite.dbm search redirects.dbm

IF / abc не входит ни в один из вариантов 404

Надеюсь, что я спрашиваю, ясно.