в глаза бросается "$1" в RewriteCond. RewriteCond проверяется до выполнения любого RewriteRule(потому что как раз выполнение/невыполнение RewriteCond и определяет, какой RewriteRule будет использовано).(сорри, самоуверенно перечил первому же абзацу страницы документации - вполне легитимные обратные ссылки на выражение в RewriteRule заругал) Если ты в RewriteCond проверяешь соответствие/несоответствие запрошенного URI, то проверять http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond QUERY_STRING в виде %{QUERY_STRING} это раз. а во-вторых, у тебя возникнут проблемы, когда тебе понадобится избежать перенаправления на index.php для других файлов в корне. К примеру, поисковики для подтверждения прав на владение сайтов(чтоб добавить сайт в "инструменте вебмастера") требуют разместить определенный файл в корневом каталоге. И для него тоже будешь отдельный RewriteCond писать? может, лучше добавить всего один RewriteCond с семантикой "делать перенаправление только для запросов на несуществующие файлы"?
| Код | RewriteCond %{REQUEST_FILENAME} !-f
|
|