Расширения без файлов обычно являются результатом абстракции пути URL-адреса - это означает, что ваше приложение должно интерпретировать все после URL-адреса и начать представлять данные на его основе.
Обратите внимание на следующее:
http://www.url.com/about-us
При обычном HTTP-запросе (например, в Apache) Apache будет пытаться обслуживать общую папку с именем /about-us
, а поскольку она не указана, - статический файл index.php
.
С любой из популярных платформ MVC, таких как CodeIgniter, CakePHP, Ruby on Rails и т. Д., /about-us
сопоставляется с тем, что называется маршрутом, который загружает ресурсы, относящиеся к этой странице. Таким образом, вместо загрузки статической страницы, она заканчивается в базе данных, получает данные для этой страницы, шаблон и динамически обслуживает файл. По сути, это один из способов получить «красивые» URL.
Если вы хотите накатить свои собственные, я настоятельно рекомендую любой из вышеперечисленных фреймворков. Не просто используйте их, не понимая их, - попробуйте понять, каков процесс выполнения. Получить представление о том, что именно делает каждый запрос.
Что касается аутентификации, я знаю, что в Rails есть несколько опций, таких как Devise и CanCan. Это в основном предварительно кодированные модули аутентификации, которые позволяют легко их настраивать.