Мне нужно переписать несколько URL-адресов, если они не заканчиваются определенными словами. Например, мне нужно переписать следующий URL
/category1/subcategory1/aproduct-url-title
to
/category1/fixedword/aproduct-url-title
перезапись не должна выполняться для следующих URL-адресов, поскольку они заканчиваются определенными конкретными словами (просмотреть все, p10, p20, p30, по возрастанию, по убыванию) -
/category1/subcategory1/view-all
/category1/subcategory1/p10
/category1/subcategory1/p20
/category1/subcategory1/low-to-high
/category1/subcategory1/high-to-low
Я безуспешно пробовал следовать следующему правилу -
RewriteRule ^(category1|category2)\/(.*)\/(!p[0-9]+|view-all|low-to-high|high-to-low)$ /$1/fixedword/$3
Я тоже пробовал соблюдать следующие правила -
RewriteCond %{REQUEST_URI} !(p[0-9]+|view-all|low-to-high|high-to-low)$
RewriteRule ^(category1|category2)\/(.*)\/(.*)$ /$1/fixedword/$3
Ценю вашу помощь.
Спасибо
Вы должны выполнить отрицательный просмотр вперед и захватить.
Правильно RewriteRule
будет выглядеть примерно так:
RewriteRule ^(category1|category2)\/(.*)\/((?!p[0-9]+|view-all|low-to-high|high-to-low).*)$ /product/detail/$3