Классный алгоритм.
Подумайте о том, что произойдет, когда больше не будет ни левого, ни правого:
Это может произойти один раз, но больше не будет вызывать затем самый большой == self.root.key, поэтому здесь нет
[110 ]Этого не произойдет
if self.root.right:
И этого не будет
if self.root.left:
, но
self.root по-прежнему верно, поэтому
while self.root:
Будет работать вечно
Одно только это правило должно сделать это:
RewriteCond %{DOCUMENT_ROOT}web/$0 !-f
RewriteRule ^process/[^/]+$ web/process/default.php [L]
Если запрашиваемый тракт не может быть отображен на существующем файле, он должен быть переписан в файл по умолчанию.
У Вас обычно должны быть свои вызовы RewriteCond перед Вашим RewriteRule. Правило инициировало, если Cond встречены.