There are plenty of frameworks that can simplify this and add a lot of functionality to the process, but I'll show you a basic approach:
First, you can use htaccess
to route all requests to one file:
//.htaccess - route all requests through index.php
//don't route the request if the url is for a file or directory
RewriteCond %{REQUEST_URI} !\.(png|jpe?g|gif|css|js|html)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
//all requests are sent to the file "index.php"
RewriteRule ^.*$ index.php [L]
Then, you can parse the request url with php and respond to it accordingly:
$pieces = preg_split('-/-', $_SERVER['REQUEST_URI'], NULL, PREG_SPLIT_NO_EMPTY);
$page = $pieces[0];
include "pages/{$page}.php";
Obviously, this is only a VERY basic example. The results of this would be:
//site.com/some-place
include "pages/some-place.php