существуют готовые фреймворки с роутером - специальной подпрограммой, которая будет вызывать уже вашу подпрограмму или загружать Html шаблон в зависимости от текущего URL.
но вы можете это сделать и сами, для чего нужно:
1) в файле .htaccess написать команду, вызывающую ваш скрипт, если соответствующего URLв виде файла не существует, например:
ErrorDocument 404 /index.php
2) в самом скрипте генерируете каждую страницу по сделанному запросу, например:
switch($_SERVER['QUERY_STRING']) {
case.....
дальше уже от вашего воображения зависит