Как правило написать php скрипт, который будет генерировать страницу, если ее нет на сайте?
Вам нужен php маршрутизатор. Читайте гайды:https://yandex.ru/search/?clid=9582&text=php%20при...https://maxsite.org/page/routing
существуют готовые фреймворки с роутером - специальной подпрограммой, которая будет вызывать уже вашу подпрограмму или загружать Html шаблон в зависимости от текущего URL.
но вы можете это сделать и сами, для чего нужно:
1) в файле .htaccess написать команду, вызывающую ваш скрипт, если соответствующего URLв виде файла не существует, например:
ErrorDocument 404 /index.php
2) в самом скрипте генерируете каждую страницу по сделанному запросу, например:
switch($_SERVER['QUERY_STRING']) {
  case.....
дальше уже от вашего воображения зависит