Назад | Перейти на главную страницу

правило htaccess для URL, не заканчивающегося определенными словами

Мне нужно переписать несколько 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