mod_rewrite будет работать, но на самом деле это не улучшит вашу фактическую файловую структуру на сайте (за кулисами).
Для этого вы будете использовать PHP-фреймворк.Я бы предложил начать с CodeIgniter , что проще, чем Zend.(У меня нет опыта работы с CakePHP, поэтому я не буду это комментировать.)
Вам потребуется настроить маршрутизацию для перехвата URL-адреса, чтобы он отображался на определенный контроллер используйте функцию для захвата оставшейся части URL в качестве параметров.
function _remap($params = array()) {
return call_user_func_array(array($this, 'index'), $params);
}
Затем в том же контроллере измените функцию индекса следующим образом:
function index($id = null) {
$data['question'] = /* get your data from the database */;
$this->load->view('index', $data);
return true;
}
Предполагается, что вы начали сПример контроллера приветствия в zip-файле.
Но, чтобы ответить на ваш вопрос более прямо, на самом деле никакой магии не происходит.Браузер запрашивает определенный ресурс, а сервер возвращает этот ресурс в соответствии со своей логикой и тем, как он настроен.Расположение файлов на сервере является внутренней проблемой, браузер видит только представление о состоянии сервера.Чтобы лучше понять это, прочитайте принцип REST.