Вместо использования RewriteCond для игнорирования файла index.html, вы можете вместо этого ограничить доступ к нему напрямую с помощью директивы FilesMatch. FilesMatch принимает регулярное выражение, которое может фильтроваться на основе имени файла (например, index.html) или любого регулярного выражения.
Блокировка доступа к файлу index.html
<FilesMatch "index\.html$">
Order allow,deny
</FilesMatch>
Это полностью запретило бы доступ к файлу index.html. Я признаю, что я не знаю, какое негативное влияние это может оказать на сканирование поисковых систем.
Подробнее о директиве FilesMatch см. http://httpd.apache.org/docs/current/mod/core.html#filesmatch
Что касается остальных каталогов в этом списке, который у вас есть в данный момент, вы можете просто заблокировать доступ ко всем каталогам независимо от имени. Это даст вам немного больше информации в будущем.
Options -Indexes
Подробнее о Директиве опций см. http://httpd.apache.org/docs/current/mod/core.html#options
В конце ваш новый файл .htaccess будет выглядеть примерно так:
# Protect specific files from access
<FilesMatch "index\.html$">
Order allow,deny
</FilesMatch>
# Hide directory listing for URL's mapping to a directory
Options -Indexes
# Follow all symbolic links in this directory
Options +FollowSymLinks
# General rewrite rules
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>