У меня есть 2 вида одного URL-адреса (только разница имеет последний слэш до ?
), и для этого мне нужно создать единый шаблон (регулярное выражение). Таким же образом шаблон может обрабатывать оба варианта URL.Шаблон не работает для правила перезаписи
products/dispenser/hand-towel?gclid=CPDv
иproducts/dispenser/hand-towel/?gclid=CPDv
Я пытаюсь использовать шаблон ниже, который работает отлично подходит для 1-го URL, но не работает на 2-ой URL.
^products/([^/]+)/([^/]+)/?$
Я попробовал еще несколько ниже шаблон, но не получил успеха.
^products/([^/]+)/([^/]+/.*| /?$)
^products/([^/]+)/([^/]+)(^/?)$
^products/([^/]+)/([^/]+)/?$
С помощью той же схеме, я хочу, чтобы получить ниже выход, который я получаю через 1 URL.
{R:1} Dispenser
{R:2} hand-towel?gclid=CPDv
и со 2-го URL мне нужно, чтобы получить ниже выхода
{R:1} Dispenser
{R:2} hand-towel/?gclid=CPDv
У меня 6 вид URL-адресов
products/dispenser/hand-towel?gclid=CPDv
products/dispenser/hand-towel/?gclid=CPDv
products/dispenser/hand-towel
products/dispenser/hand-towel/hand-roll?gclid=CPDv
products/dispenser/hand-towel/hand-roll/?gclid=CPDv
products/dispenser/hand-towel/hand-roll
Таким образом, все вышеуказанные адреса приземлятся на одной странице, но если первые 3 адресов будут поражены, то мне нужно dispenser
и Hand-towel
как R1 и R2, а если 4-й, 5-й и 6-адрес будет хит, то я необходимо dispenser
, hand-towel
и hand-towel-roll
как R1, R2 и R3.
В то время как шаблон ^products/([^/]+)/([^/]+)/?$
предназначен только для 1 и 2 URL-адресов, так как этот шаблон не сможет идентифицировать параметр R3 для URL-адресов 4,5 и 6.
В то время как шаблон ^products\/([^\/]+)\/([^\/]+)\/(.+)$
не работает для 1-го URL-адреса.
@Fallen герой: Спасибо за ваши усилия. Но все же какая-то часть отсутствует на выходе, я обновил свой вопрос для лучшего уточнения, пожалуйста, смотрите. – user3305540