Php history.pushState导航-元标记如何-单独的模板?

Php history.pushState导航-元标记如何-单独的模板?,php,ajax,seo,meta-tags,pushstate,Php,Ajax,Seo,Meta Tags,Pushstate,我一直在构建一个基于jquery导航的网站,没有重新加载(使用PHP和AJAX),最近遇到了页面“后退”、“前进”和“重新加载”功能以及SEO友好性的问题 --跳过本节直接进入问题-- 当前正在(不是使用AJAX而是)加载一个index.php,该index.php有几个“content”div,其中一个可见(class=“active”),而其他div不显示。当用户单击导航链接时,一个漂亮的动画会在内容div之间切换 我对apache进行了重写,以映射以下内容 http://mysite.co

我一直在构建一个基于jquery导航的网站,没有重新加载(使用PHP和AJAX),最近遇到了页面“后退”、“前进”和“重新加载”功能以及SEO友好性的问题

--跳过本节直接进入问题--

当前正在(不是使用AJAX而是)加载一个index.php,该index.php有几个“content”div,其中一个可见(class=“active”),而其他div不显示。当用户单击导航链接时,一个漂亮的动画会在内容div之间切换

我对apache进行了重写,以映射以下内容

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

其中“about”部分是默认显示的部分(而其他“content”div是隐藏的)。基于这个参数,我为页面添加了适当的元标记。我的站点地图上有mysite.com/about、mysite.com/blog,这样它们就可以作为很好的单独页面进行索引

然而,我最近决定基于ajax,因为我计划合并更多的内容,并且在一个页面上加载所有内容是愚蠢的

注意:我现在也在实现Smarty模板

我决定实现hash标签,但看到了固有的SEO问题,然后我发现了hashbang(wth?!),然后找到了新的HTML5内容,其中包含history.pushState()history.js,并决定使用它

那么主要问题来了

如果我只有一个页面使用ajax在内容div中加载页面模板,使用history.pushState()修改URL,使用mod_rewrite和一个PHP后端,它可以在诸如“mysite.com/about”(mysite.com/index.PHP?page=about)等直接请求的情况下提供默认内容模板(用于基本可用性和SEO),我也不能为直接请求设置元内容,除非我有两个模板-一个内容模板-和一个元模板?还有别的办法吗

这样的标记是否足够重要,足以保证有一个特别适合它们的模板

总之,我希望我的漂亮的mod_rewrite URL能够在google上为特定的ajax加载页面内容模板提供正确的标题和元描述

编辑


我要做的和他们在这里做的差不多。它们有一个事件监听器,当列出新内容时,它会更改
标记。它们还提供正确的
标记,但只有当它是对一个主页(如博客)的直接请求时,其他页面(如博客)才会返回主博客页面的meta标记,并且只有当直接请求时,我才会首先构建站点以使用所有直接链接而不使用ajax,然后添加ajax。但是,如果浏览器正在请求页面,则只包含添加ajax/历史记录功能的代码。如果web爬虫访问您的站点,请不要包含ajax/历史记录功能