Что значит "страница"? Из-за того что вы этим словом в одном предложении назвали две разных вещи у вас путаница и проблемы.
site.com/catalog/page - это url который должен обрабатываться системой, если сервер не нашел такого файла на диске, в результате чего система должна запускать какой-то скрипт с диска.
site.com/catalog/page.php - это url который обрабатывается сесрвером и скрипт с таким именем существует и поэтому запускаеться.
На каком основании вы решили что этот же скрипт должен запускаться если по URL site.com/catalog/page ?
Какие для этого есть предпосылки?
Наверное нужно каким-то образом объяснить либо серверу, что когда вы запрашиваете отсутствующий файл, то нужно попробовать найти такой же но с ".php" на конце. Либо пусть сервер передает управление системе роутинга битрикс и тогда вы должны написать соотвествующее правило в urlrewrite.php, как предложил
Юрий Лядов
Только конечно вот так это сделать:
array (
'CONDITION' => '#^/catalog/page#', // Здесь пишите на какой url нужно реагировать, если файла нет...
'RULE' => '',
'ID' => '',
'PATH' => '/catalog/page.php', // а здесь какой скрипт запускать
'SORT' => 100,
),