Você deve executar uma visão antecipada e capturar negativos.
O RewriteRule
correto será parecido com isto:
RewriteRule ^(category1|category2)\/(.*)\/((?!p[0-9]+|view-all|low-to-high|high-to-low).*)$ /product/detail/$3
Eu preciso reescrever alguns URLs se esses URLs não terminarem com certas palavras. Por exemplo, preciso reescrever o seguinte URL
/category1/subcategory1/aproduct-url-title
to
/category1/fixedword/aproduct-url-title
a reescrita não deve ocorrer para os URLs a seguir, pois eles terminam com determinadas palavras específicas (view-all, p10, p20, p30, de baixo para alto, de alto para baixo) -
/category1/subcategory1/view-all
/category1/subcategory1/p10
/category1/subcategory1/p20
/category1/subcategory1/low-to-high
/category1/subcategory1/high-to-low
Eu tentei com a seguinte regra sem sucesso -
RewriteRule ^(category1|category2)\/(.*)\/(!p[0-9]+|view-all|low-to-high|high-to-low)$ /$1/fixedword/$3
Eu também tentei seguir as regras -
RewriteCond %{REQUEST_URI} !(p[0-9]+|view-all|low-to-high|high-to-low)$
RewriteRule ^(category1|category2)\/(.*)\/(.*)$ /$1/fixedword/$3
Aprecie sua ajuda.
Obrigado