Это правило не выполняется, потому что в нем есть /
. Таким образом, перенаправленный URL (_images/12940.png
) снова перехватывается правилом, и mod_rewrite пытается перенаправить его на (_images/_images/12940.png
).
Таким образом, вы должны проверить, начинается ли путь уже с _images
:
RewriteRule ^(?!_images)([A-Za-z0-9\_\-\/]+).([A-Za-z]+)$ "_images/$1.$2"
Также вы можете улучшить свое правило следующим образом:
RewriteRule ^(?!_images)([a-z0-9_\-/]+\.[a-z]+)$ _images/$1 [NC]
Нет необходимости экранировать _
и /
, но вы должны экранировать .
, поскольку в противном случае он соответствует любому символу. NC
делает правило нечувствительным к регистру, поэтому вам не нужны дополнительные A-Z
.