RewriteRule ^(.*).htm index.php [NC,QSA,L]
RewriteRule ^(.*).html index.php [NC,QSA,L]
Ваше второе правило на самом деле ничего не делает, так как любые .html
запросы будут перехвачены первым правилом. Таким образом, второе правило может быть удалено.
Затем вы добавляете условие к первому правилу, которое исключает указанный c URL, к которому вы пытаетесь обратиться. Например:
RewriteCond %{REQUEST_URI} !^/uploads/themes/mail-signature/mail-signature\.html$
RewriteRule \.html?$ index.php [NC,L]
Флаг QSA
здесь не требуется, так как любая строка запроса будет проходить по умолчанию.
Префикс ^(.*)
в вашем RewriteRule
pattern не требуется, так как вы не используете эту обратную ссылку.
Вы должны backsla sh экранировать любые буквенные точки в регулярном выражении, например. \.htm
, иначе вы соответствуете любому персонажу, например. "Xhtm". И, вероятно, вы хотите сопоставлять только те URL-адреса, которые заканчиваются на .htm
или .html
? Ваше оригинальное регулярное выражение будет соответствовать "htm" в любом месте запрошенного URL.