Я разрабатываю проект с помощью codeigniter, который имеет общий верхний и нижний колонтитулы. Используя pjax, я могу динамически изменять только содержимое, не нарушая верхний и нижний колонтитулы. Также URL-адрес изменяется относительно контроллера. Ниже приведена моя озабоченность по поводу аналогии URL и SEO.
Мой контроллер домашней страницы по умолчанию загружает заголовок, индексную страницу и нижний колонтитул, как показано ниже.
public function index(){
$this->load->model('dbmodel');
$data['about'] = $this->dbmodel->about();
$this->load->view('templates/header',$data);
$this->load->view('includes/index',$data);
$this->load->view('templates/footer');
}
Предположим, я нажимаю на пункт меню, он загружает соответствующий путь контроллера в URL-адресе (например, http://domain.com/main/bandDirectory), а только div содержимого pjax заменяется/обновляется содержимым, а верхний и нижний колонтитулы остаются прежними.
public function bandDirectory(){
$this->load->model('dbmodel');
$data['content'] = $this->dbmodel->band();
$this->load->view('includes/bandDirectory',$data);
}
Это отлично работает, когда элементы меню перемещаются с домашней страницы, поскольку изначально загружаются верхний и нижний колонтитулы. Но что, если мы напрямую нажмем на URL-адрес (например, http://domain.com/main/bandDirectory). Этот контроллер не содержит верхнего и нижнего колонтитула и загружает только то содержимое, которое разбивает страницу на части! Это станет серьезной проблемой, если поисковые системы проиндексируют эти URL-адреса. Как побороть эту проблему?
P.S. Поскольку я реализую проигрыватель в заголовке, я не хочу включать верхний и нижний колонтитулы во все контроллеры, так как это остановит воспроизведение проигрывателя при обновлении заголовка.