i am a little confused but do you want something like this:
www.example.com/?page=main //your main page
www.example.com/?page=contact //your contact page (i'm using contact as an example only)
Something like that the template of your page stays the same but the content is different.
What you could do is have index.php be the file where you put your template, css and everything.
You could use $_GET and a case switch (for security) to fetch the content of each page.
You could either have the html content in the script itself or you could put the html content in seperate files which you can use include or require with.
Here is an example:
switch ($_GET['page']){
/* Content to show if ?page=main */
case "main":
echo "<h2>content main</h2>";
break;
/* ?page=contact */
case "contact":
echo "<h2>content contact</h2>";
break;
/* ?page=about */
case "about":
echo "<h2>content about</h2>";
break;
Just add more or change it to your liking and in the echo you can put your content, have your template on the same page.