The front controller of Front-Controller Routing is in place, yet /products/42 returns 404 and the log is empty. The manual's test is a nonsense word in the file: no 500 means Apache 129 never opened it.
sed -i '1i TestMe' /var/www/example/.htaccess
curl -s -o /dev/null -w '%{http_code}\n' localhost:8111/products/42
grep -n -e '<Directory' -e AllowOverride /etc/apache2/apache2.conf /etc/apache2/sites-enabled/*404 ... /etc/apache2/apache2.conf:170:<Directory /var/www/> /etc/apache2/apache2.conf:172: AllowOverride None ... /etc/apache2/sites-enabled/example.conf:6: <Directory /var/www/example>
The site's <Directory> grants access but never mentions overrides, so it inherits None from Ubuntu 225 's <Directory /var/www/> (Merging and Inheritance). With AllowOverride FileInfo and Options FollowSymLinks added and Apache reloaded, the request becomes a 500 with Invalid command 'TestMe'; delete line 1 and it answers front controller: /products/42. Other silent skips:
<IfModule> around a missing module. With mod_rewrite disabled, the wrapped front controller returned 404, and apache2ctl -M | grep -c rewrite printed 0.
The wrong name (htaccess.txt), or the wrong site (apache2ctl -S, Virtual Hosts).
AllowOverride in <Location> (ignored), or Nonfatal (AllowOverride). strace (How .htaccess Is Found) shows what Apache actually opened.