I am using URL path parameters in my page configuration and it works as expected for a while but I am finding when I add an additional page config, other URLs start displaying the wrong page, and when I delete it, they start working again, even though their config was not changed at all. Is there any limitations with URL parameters which could cause this? Eg. A maximum URL length? A maximum number of parameters allowed in a URL? Any other cases where it will not follow the defined primary view setting?
For example:
It works with config:
/static1/:level_1 -> level1_page
/static1/:level_1/static2/:level_2/:level_3 -> level3_page
/static1/:level_1/static2/:level_2 -> level2_page
But when I add:
/static1/:level_1/static2/:level_2/:level_3/:level_4 -> level4_page
all URLs which should match level2_page or level3_page show level4_page.
Note I left the static sections of the URL, and the order they are defined in here in case that matters somehow. (I know with some react routing libraries the order in which routes are defined matters…)
I have found a way around this and it is a better URL design anyway.
If you use a static segment between each parameter segment, it works fine. For example:
/static1/:level_1/static2/:level_2/static3/:level_3/static4/:level_4 -> level4_page
/static1/:level_1/static2/:level_2/static3/:level_3 -> level3_page
/static1/:level_1/static2/:level_2 -> level2_page
/static1/:level_1 -> level1_page
Or a more readable example:
/categories/food/subcategories/vegetables/items/carrots where categories, subcategories, and items are static segments in the URL, and food, vegetables, and carrots are values of parameters.
In v8.1.0, a URL without the static sections between parameters such as /food/vegetables/carrots would not work.