Я понял это, хотя я не уверен, почему это работает:
Я изменил правила, чтобы они происходили в обратном порядке.
Код, который работает следующим образом:
RewriteCond %{REQUEST_URI} !\.(css|gif|jpg|png|ico|txt|xml|js|pdf|htm|zip)$
RewriteRule !(specialexception)+\.php)$ /path/to/index.php [NC,L]
Проблема с этим решением:
Поскольку "specialexception.php" указан в качестве последнего правила, в фактической строке RewriteRule он решает проблему только для ОДНОГО исключения файла.
Один грязный способ обойти это может заключаться в использовании канала в последней строке регулярного выражения:
RewriteCond %{REQUEST_URI} !\.(css|gif|jpg|png|ico|txt|xml|js|pdf|htm|zip)$
RewriteRule !(specialexception|anotherexception|foo|bar)+\.php)$ /path/to/index.php [NC,L]
Если у кого-то есть идея, как добавить несколько исключений для нескольких файлов, я бы хотел знать!