-f
это разве проверка регулярного выражения? Тут просто проверяется существование файла. RewriteRule ^page/([0-9]+)/$ index.php?page=$1 [L,QSA]
RewriteRule ^cat/([0-9]+)/(.*)/([0-9]+)/$ cat.php?id=$1&name=$2&page=$3 [L,QSA]
RewriteRule ^cat/([0-9]+)/(.*)/$ cat.php?id=$1&name=$2 [L,QSA]
RewriteRule ^collections/$ collections.php [L,QSA]
RewriteRule ^collections/([0-9]+)/$ collections.php?page=$1 [L,QSA]
RewriteRule ^search/(.*)/([0-9]+)/$ search.php?q=$1&page=$2 [L,QSA]
RewriteRule ^search/(.*)/$ search.php?q=$1 [L,QSA]
rewrite ^/page/([0-9]+)/$ /index.php?page=$1;
rewrite ^/cat/([0-9]+)/(.*)/([0-9]+)/$ /cat.php?id=$1&name=$2&page=$3;
rewrite ^/cat/([0-9]+)/(.*)/$ /cat.php?id=$1&name=$2;
rewrite ^/collections/$ /collections.php;
rewrite ^/collections/([0-9]+)/$ /collections.php?page=$1;
rewrite ^/search/(.*)/([0-9]+)/$ /search.php?q=$1&page=$2;
rewrite ^/search/(.*)/$ /search.php?q=$1;
RewriteCond %{REQUEST_URI} !^/robots.txt$ [NC]
https://amaio.ru/cases
нормально работает.RedirectPermanent /post/golos/ /golos/post
RewriteRule ^(img)/(video)/?$ /$2/$1 [R=301,L]
RewriteRule ^(papka1)/(papka2)/?$ /$2/$1 [R=301,L]
Необходимо иметь в виду, что при использовании индексного файла делается внутреннее перенаправление и снова происходит поиск подходящего location.
При запросе
/
конструкцияindex index.php;
выполнит внутреннее перенаправление на/index.php
после чего запрос попадёт вlocation = /index.php
Избежать зацикливания редиректа можно так: