In Sitefinity 4 we support parameters in the URL , not only in the query string. The only problem for now is that we have to be able to tell the difference between a valid URL and an invalid one. But when the URL does contain parameters, it gets a bit complicated. The only way to do it is to know if the parameters are handled and by what. In Sitefinity 4.2 SP1 we introduce a way to do it. There's one thing that gets affected though and that's the custom controls. So if you have a custom control that relies on some parameter or parameters in the URL, you have to add this line of code to indicate that you have processed a specific parameter :
RouteHelper.SetUrlParametersResolved();
This will indicate that at least one parameter is handled. If you skip it and no other control recognize the parameter it will throw a 404 error.
This feature depends also on some settings :
Page->Title & Properties ->Allow parameter validation. This has to be checked if you want to have a page with parameters , other way it will throw 404 if the page is requested with additional parameters in the URL.
You can also turn off this feature from
Settings -> Advanced Settings -> Pages -> EnableBackwardCompatabilityForPagesUrls. If you click this it will return the previous page behaviour.
For your convenience we've prepared a brief example demonstrating how two user controls can communicate with each other using UrlParameters.You can download the sample from here.