dma84, при составлении правил важно не забывать, что mod_rewrite запускает обработку запроса снова и снова, до тех пор, пока он не перестанет меняться.
Последнее правило изменит запрос на index.php и Apache запустит цикл обработки запроса заново с первого RewriteRule.
В итоге с любой страницы будет редирект на /index.php/.
Первому RewriteRule передается путь от того места, где находится .htaccess, до запрошенного файла. Эта строка никогда не начинается со "/". Последующим RewriteRule передается результат предыдущих преобразований.
dma84, при составлении правил важно не забывать, что mod_rewrite запускает обработку запроса снова и снова, до тех пор, пока он не перестанет меняться.
Последнее правило изменит запрос на index.php и Apache запустит цикл обработки запроса заново с первого RewriteRule.
В итоге с любой страницы будет редирект на /index.php/.
Поможет дополнительная проверка RewriteCond %{ENV:REDIRECT_STATUS} ^$
или RewriteCond %{REQUEST_FILENAME} !-f
#(<a\b.+?</a>(*SKIP)(*F)|помощник)#s
http://sandbox.onlinephpfunctions.com/code/b40cda9e2584294146c12245c6fbad45f65f16d5
Тогда поменять RewriteCond %{REQUEST_URI} !^/search
на RewriteRule ^(search)$ /?path=$1 [L,QSA]
И добавить ниже исключение, чтоб не открывалось /search.html
sercher, нужно поменять местами правила.
ivcou, для исключения достаточно добавить RewriteCond %{REQUEST_URI} !^/search
Вероятно, поставили редирект после подобной конструкции:
Нужно просто перенести редирект повыше.
Почему первое правило не отрабатывает на запросах к site.ru/index.php?
https://habrahabr.ru/company/sprinthost/blog/129560/
Первому RewriteRule передается путь от того места, где находится .htaccess, до запрошенного файла. Эта строка никогда не начинается со "/". Последующим RewriteRule передается результат предыдущих преобразований.
Или так
После редиректа новый адрес начинается на /cat/ и снова подходит под условие !^/(help|contacts|about)/
/verona/cat/subcat -> /cat/subcat?region=verona -> /subcat?region=cat
Можно дополнительно проверять %{QUERY_STRING} на наличие region.
Или одним правилом.
Есть ряд статических страниц (физически лежат на сервере), которые называются типа cat.html?page=2