Итак, я перевожу то, что вы хотели бы сделать, я изменяю ваши правила и пишу их.Скажите, пожалуйста, прав я или нет.
Вы хотите проверить, есть ли в строке запроса необязательный параметр "стиль".
RewriteCond %{QUERY_STRING} ^style=([A-Za-z-]+)/?$
Какой смысл^
и /?
и $
?Удалите их:
RewriteCond %{QUERY_STRING} style=([A-Za-z-]+)
Это понятнее и все равно должно работать для того, что вы хотите.
RewriteRule ^file\.php$ %1-new? [NS,R=301,L]
Какой смысл ?
?Удалите его:
RewriteRule ^file\.php$ %1-new [NS,R=301,L]
Итак, пожалуйста, попробуйте эти правила и скажите мне, если они работают, а если нет, то, пожалуйста, будьте более конкретны или приведите реальный образец URL, который вы хотели бы переписать:
RewriteCond %{QUERY_STRING} style=([A-Za-z-]+)$
RewriteRule ^file\.php$ %1-new [QSA,NS,R=301,L]
RewriteRule ^([A-Za-z-]+)-new/$ file.php?style=$1&redirect=no [NS]