我有一个单页网站,用SammyJS构建为js框架,PHP用于后端,所以当我达到搜索引擎优化的点时,我读到了谷歌Ajax抓取工具,所以我做了以下内容: 1.我将以下2行添加到我的htacess文件中。
#RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
#RewriteRule ^$ /seo/index/ [R=301,L]
2。我创建了一个新的控制器(seo),它只显示索引所需的数据(HTML)而没有任何CSS或js。
因此,如果网址包含_escaped_fragment_,则网络服务器会将其重定向到seo控制器。 当我使用Facebook共享时,此解决方案工作正常,但在gplus,link-in和twitter之间无效。 另外,当我测试google-bot如何看到我的网站时,google-bot会看到301重定向页面。
由此,我想要一些没有重定向的东西,这需要sammyJS在没有哈希的情况下工作,我无法使它工作。
我的问题是如何让没有#的sammy js作品!或#,考虑所有浏览器都不支持推送状态。
关于这个案子的任何想法。
谢谢,
答案 0 :(得分:0)
经过一些研究后,我发现这种方式可以通过单页面应用来处理seo和社交媒体,
由于我使用Yii框架作为后端,在主布局文件中我得到了查询字符串的参数,所以如果url包含“_escaped_fragment_”,我将获取此变量及其值并直接得到结果包括sammyJS路由器文件。
所以在布局文件的顶部:
<?php
if(isset($_GET['_escaped_fragment_'])){
Return the data you want using PHP only don't relay on js,
from here you need to provide a full html page with all data.
}else{
include your sammy js routers file.. normal case
}
?>
并且您也不需要从htaccess文件进行任何重定向。
谢谢,