You can create subsites in pimcore very easily directly in the context menu:

That's basically all, everything else is done in your code.
Code Snippets (since 1.4.3)
Check if current request is inside a subsite
if(Site::isSiteRequest()) { /* ... */ }
Working with the navigation helper
See Navigation (since pimcore 1.4.0)
Getting the full path of a document inside a subsite-request
$document->getRealFullpath(); // returns the path including the site-root $document->getFullPath(); // returns the path relative to the site-root
Getting the root-document of the current site
if(Site::isSiteRequest()) { $site = Site::getCurrentSite(); $navStartNode = $site->getRootDocument(); } else { $navStartNode = Document::getById(1); }