Con php por ejemplo..
index.php
Código PHP:
Ver original<?php
$opcion=$_GET["opcion"]; //obtenemos por GET la variable opcion que declaramos mas adelante en los enlaces
switch($opcion){
case "home": //cuando el valor de la "opcion" sea "home"...
$contenido="home.php"; //ruta del contenido (si esta dentro de la carpeta "php" seria "php/home.php")
$titulo="Home"; //titulo que aparece en la pestaña del navegador
break;
case "pagina1":
$contenido="pagina1.php";
$titulo="Pagina 1";
break;
case "pagina2":
$contenido="pagina2.php";
$titulo="Pagina 2";
break;
default:
$contenido="home.php";
$titulo="Home";
break;
}
?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo $titulo; ?></title>
</head>
<body>
<ul>
<li><a href="?opcion=home">Home</a></li>
<li><a href="?opcion=pagina1">Pagina 1</a></li>
<li><a href="?opcion=pagina2">Pagina 2</a></li>
</ul>
<?php
/*el signo de interrogacion "?" hace referencia a que es una variable de opcion, puede ser cualquier cosa solo puse "opcion" para que sea mas facil de entender, podria ser "?op=". Y lo que va despues del igual es el valor que le asignas a esa opcion, que va a cambiar con el switch que usamos arriba */
?>
<div>
<?php include($contenido);?>
</div>
</body>
</html>
En este ejemplo, "pagina1" y "pagina2" deberian tener solo el contenido que queres mostrar, no es necesario que vuelvas a escribir todo el head, la barra de navegacion, etc.. nada de eso, solamente lo que quieras que se muestre donde pones el <?php include($contenido);?>
Saludos
PD: Al igual que otras personas que dieron otras respuestas, conteste esto muchas veces de la misma manera, el foro tiene buscador.. pueden encontrar respuestas antes de hacer un post se ahorran tiempo :P