Такие урлы называются pretty URL. Pretty url могут быть реализованы по разному. Topic/film/user итд. это сущности.
В общем, писать очень и очень долго. Мой вам совет - если хотите понять, как это работает - учите фреймворки (yii2, laravel, symfony). Они избавляют вас от написания низкоуровневого кода и помогают сконцентрироваться на самой задаче, не битах-байтах. Аналогия понятна, думаю.