Apache снова запустит правила, если в ходе прохода произойдут какие-либо изменения, которые вызывают внутреннюю или внешнюю перенаправление. Вы должны поймать это с правилом для index.php
RewriteRule ^index\.php$ - [L]
, который просто использует этот адрес как есть. Это то, что делает WordPress.
В зависимости от вашей версии apache вы можете установить уровень журнала перезаписи на 8 либо с помощью RewriteLogLevel или LogLevel. В старых версиях это должно быть сделано в httpd.conf, поэтому вам нужен локальный тестовый сайт.
Не оставляйте это сообщение, иначе ваше качество пострадает.
Edit:
Вот цитата из docs on the rerun под L флагом:
Если вы используете RewriteRule либо в файлах .htaccess или в разделах, важно иметь некоторое представление о том, как правила обрабатываются. Упрощенная форма этого заключается в том, что после того, как правила были обработаны, переписанный запрос передается механизму синтаксического анализа URL-адресов, чтобы делать то, что может быть с ним. Вполне возможно, что по мере обработки обработанного запроса файл или раздел .htaccess может быть встречен снова, и, следовательно, набор правил может снова запускаться с самого начала. Чаще всего это произойдет, если одно из правил вызывает перенаправление - внутреннее или внешнее - заставляя процесс запроса начать работу.
Это в DOCUMENT_ROOT? Или у вас есть более высокий каталог RewriteRules? Включите 'RewriteLog', чтобы отладить его в деталях. – mario
'$ 1' - это то, что было уловлено' (. *) ', Поэтому оно будет захватывать что угодно от начала до конца (из-за'^'и' $ '). Каков URL, который вы указали для наличия '$ _GET ['story']' to 'index.php'? – MatRt
example.com/blog/index.php?story=12345 = example.com/blog/12345 – Richard