RewriteCond %{REQUEST_FILENAME} !-d
или
RewriteCond %{REQUEST_FILENAME} !-f
Можно не указывать - тогда если будет существовать каталог /search и в нём будут существовать файлы/каталоги, то будет срабатывать правило переброса на cgi. Если указать, то правило переброса будет срабатывать только для несуществующих файлов/каталогов.
замена? [R]
решила проблему добавления ?QUERY_STRING
за то открыла больше проблем :)
в назидание потомкам: для отладки mod_rewrite включите логи
RewriteLog /tmp/rewrite.log
RewriteLogLevel 9
вот примерчик, сработанный сейчас
вот перебрасываю с реального на виртуальный
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /cgi-bin/
RewriteCond %{THE_REQUEST} GET\ /cgi-bin/python/ffcms/blog.py\??(id|m)?=?([0-9]{1,4})?
RewriteRule blog.py$ /blog/%1/%2? [R]
</IfModule>
а вот виртуальный подменяю реальным
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^blog/(com|stat|id|m|q)/([^/]+) /cgi-bin/python/ffcms/blog.py?$1=$2 [L]
</IfModule>
тоесть паук идёт по старой ссылке, а там apache говорит ему, страницы нет, перемещена вот сюда, он забывает старю ссылку идёт по новой
а пользователям вообще пофиг