I’m looking to build a site that has a single page but will be displayed no matter what the url is and depending on the url, there will be different peices of information changed.
For example: the phone number.
site.com/url1 – shows 800-123-4567
site.com/url2 – shows 800-456-1234
site.com/url3 – shows 800-987-6543
Can SiteCore 6 do this out of the box or do I need to build a custom control?
Can anyone point me in the right direction of some good tutorials?
From your description and comments it looks like there are several different things you may be trying to do. Essentially though, you want to provide a mechanism for addressing a piece of data stored in Sitecore and presenting/processing it in the same way as the other similar bits of data. As Michael notes above, this isn’t just out of the box functionality for Sitecore, it’s the basic premiss of the software. If you have, for instance, a phone book, then create a PhoneBookEntry template, associate it with a layout and controls using __Standard Values and then create PhoneBookEntry items from it. Each will be directly addressable without using a querystring.
If your phone number is only part of a wider data set you wish to present (Contact Details, for instance) then you can build a ContactDetails template that uses both an Address template and a PhoneBookEntry template as base templates and then create ContactDetails items from it – they will have all the fields included in Address and PhoneBookEntry. Again, these will be directly addressable without a querystring.
You will always have to create some form of presentation component – whether it’s XSLT or .Net – in order to render your content, though this is very simple if you just use the standard Sitecore tools for the job, such as FieldRenderer.
If your ContactDetails wished to allow for multiple phone numbers and you wished to choose which to display then you might want to use the querystring to do so (e.g. show=mobile|office|home). This is a conditional rendering and you will have to insert your querystring test into your presentation component. Again, this doesn’t have to be difficult.
The one are where using a querystring might be really advantageous would be if you were using it to lookup data held and maintained outside Sitecore (e.g. a ContactDetails database), though here you would need a custom component anyway.
Remember that your data architecture is really important in Sitecore. It isn’t a relational database, so designing your architecture to cope with e.g. many to many relationships requires a bit of thought.
It’s also worth noting that using querystrings can have a nasty effect on SEO, so its best to keep them to a minimum and where you do use them keep the parameters as few as possible. It’s also worth noting that if you start to manipulate link building outside of Sitecores out of the box API you risk that changing a setting in your web.config concerning how links are built and interpreted could break your link. There’s a lot of functionality in Sitecore for determining e.g. language of an item that you’d need to replicate if you hand-stitched the links.
I recommend spending some time with the product documentation, there are plenty of cookbooks there.
Aside from the Presentation cookbooks this might also be of interest: