Сервер разбирает запрос
Метод похожий, но на вскидку менее ресурсоемкий, потому что не приходится искать файлы по директории.
В установках директории (опять же httpd.conf или .htaccess) пишем:
<FilesMatch "^(news)$">
ForceType application/x-httpd-php
</FilesMatch>
В директории лежит файл с именем "news" (именно "news", без расширения). Когда запрашивается адрес "/news", либо "/news/bla-bla-bla", сервер выполняет файл news как php-скрипт. А внутри него производится обработка переменной $REQUEST_URI.
Чтобы не писать для каждого подобного файла свой блок FilesMatch, нужно немного изменить строку шаблона. Пусть сервер ищет файлы без расширения, то есть те, у которых в имени нет точки:
<FilesMatch "^([^\.]+)$">
Очень удобно! Когда-нибудь поставлю такое же и себе.