history.pushState навигация - как насчет мета-тегов - отдельный шаблон? - PullRequest
4 голосов
/ 31 августа 2011

Я создавал сайт на основе навигации jquery без перезагрузок (с использованием PHP и AJAX) и недавно столкнулся с проблемой функций «назад», «вперед» и «перезагрузка», а также с SEO-дружественностью.

- пропустите этот раздел, чтобы перейти к вопросу -

мой сайт в настоящее время (не использует AJAX, но) загружает один файл index.php, который имеет несколько div «content», один из которых является видимым (class = "active"), а другие нет. отображается. Когда пользователь нажимает навигационную ссылку, приятная анимация переключается между элементами содержимого.

У меня есть apache переписывает, чтобы сопоставить такие вещи, как

http://mysite.com/about в http://mysite.com/index.php?page=about

где раздел "about" будет отображаться по умолчанию (тогда как остальные div "content" скрыты). основываясь на этом параметре, я включаю соответствующие метатеги для страниц. моя карта сайта имеет mysite.com/about, mysite.com/blog, так что они индексируются как отдельные отдельные страницы.

Однако я недавно решил сделать это на основе ajax, так как планирую включать гораздо больше контента и глупо загружать весь контент на одной странице.

Примечание: я также сейчас внедряю шаблоны Smarty.

Я решил реализовать хеш-теги, но увидел присущие SEO проблемы, затем я обнаружил hashbangs (wth ?!), а затем нашел новый материал HTML5 с history.pushState () и History .js и решили использовать его.

вот главный вопрос

если у меня есть только одна страница, которая загружает шаблоны страниц в div содержимого с помощью ajax, используя history.pushState () для изменения URL-адреса и используя mod_rewrite и PHP-сервер, который может служить шаблоном содержимого по умолчанию в случае прямой запрос, такой как «mysite.com/about» (mysite.com/index.php?page=about) (для базового использования и SEO), я также не могу установить мета-контент для прямых запросов, если у меня нет двух шаблонов - шаблона контента - а мета шаблон? Есть ли другой способ обойти это?

являются ли теги типа <title> и <meta name="description"> достаточно важными, чтобы гарантировать наличие шаблона специально для них?

В общем, я хочу, чтобы мои симпатичные URL-адреса mod_rewrite были обновлены в Google с правильным заголовком и мета-описанием для определенного загружаемого ajax шаблона содержимого страницы.

EDIT

Я собираюсь повторить то же самое, что и здесь, на hypem.com . у них есть прослушиватель событий, который изменяет тег <title>, когда появляется новый контент. они также обслуживают правильный тег <meta name="description">, но только если это прямой запрос к одной из главных страниц, например к блогам, - к другим страницам, таким как http://hypem.com/blog/indie+today/10332,, возвращают метатег для главной страницы блога и только по запросу

1 Ответ

0 голосов
/ 30 сентября 2011

Я бы сначала создал сайт для работы со всеми прямыми ссылками и без ajax, а затем добавил бы ajax. Однако включайте код, который добавляет функциональность ajax / history, только если страница запрашивается браузером. Если сканер попадает на ваш сайт, не включайте функцию ajax / history.

...