Ну самое простое - это конечно же в файле script.php сделать условную конструкцию типа:
<?php
if($_GET['action'] == 'profile'){
require_once($_SERVER['DOCUMENT_ROOT'].'/profile/index.php');
} elseif ($_GET['action'] == 'info') {
require_once($_SERVER['DOCUMENT_ROOT'].'/info.php');
}
?>
И тд. Но это на самом деле полная дичь, и так никто не делает. Но возможно, поможет вам понять, как вообще работает роутинг в самом топорном варианте.
А так, я бы почитал как раз про роутинг в php, посмотрел фреймворки, которые его реализуют из коробки и тд. Можно документированные и удобные, типа Laravel, можно маленькие и быстрые, типа Slim.
В целом, nginx тут почти не при чём. Разве что в конфиге должно быть что-то типа:
location / {
try_files $uri $uri/ /index.php?$query_string;
}