如果缺少,则在配置阶段添加哈希前缀

时间:2013-10-16 11:19:36

标签: angularjs seo phantomjs google-crawlers

我现在正在将基于Angularjs的Web应用程序中的幻像集成。

This好文章说我应该调用$locationProvider.hashPrefix()方法将前缀设置为'!'来自SEO原因(允许抓取工具截取URL的_escaped_fragment组件)。

问题是我之前没有,有些网址如下: #/home

我可能有一种方法可以植入这个'!'在APP的配置功能中以编程方式将URL填入URL(如果它尚未存在),而是必须手动编辑大量标记。

2 个答案:

答案 0 :(得分:4)

我遇到了类似的问题,手动(搜索/替换)遍历了所有链接并修复了它们。

我遇到的另一个问题是外部网站使用旧格式,即 http://plinkplink.net/#/event/3 而不是新的格式 http://plinkplink.net/#!/event/3

我为此所做的修复并不严格地说是angularjs惯用语,但它确实起到了作用。我已将此脚本添加到页面的标题中。它只是将带有#的页面重定向到带有#!:

的页面
    <script>
        var loc = window.location.href
        if (loc.indexOf("#") != -1 &&  loc.indexOf("#!") == -1 ){
            window.location.href = loc.replace("#", "#!");
        }
    </script>

我希望它有所帮助。

答案 1 :(得分:0)

您是否链接到#值?即 - <a href="#/my/page">如果是这样,你就不应该这样做。你应该链接到没有#前缀的网址,我相信它会解决你的问题。