为每个URL而不是页面提供开放图谱元标签[英] Open Graph Metatags for every URL instead of page

问题描述

我已经开发了一个类似于Facebook Wall的页面,该页面上有Angular(SPA)的帖子列表.每个帖子都有独特的URL,可以准确到达该帖子.我是开放图元素的新手.我已经插入了头标签.

 <meta property="og:url" content="#####"/>
    <meta property="og:type" content="website"/>
    <meta property="og:title" content="####"/>
    <meta property="og:description"
          content="######"/>
    <meta property="og:image" content="/images/####.png"/>

元标记对于每个帖子都是常见的,如何为每个URL分配元标记(帖子)?

预先感谢!!

推荐答案

我已经按照此博客

  1. 我构建了一个非公共的,最小的JSP页面,并具有所有OG标签.查询数据库后生成OG标签,因此它们是动态的.

            <!doctype html>
                <html lang="en">
    
    
                    <head>
                        <sql:query dataSource="jdbc/localMysql" var="result">
                            ---- Query -------
                        </sql:query>
                        <c:forEach var="row" items="${result.rows}">
                            <meta property="og:type" content="website" />
                            <meta name= "twitter:card" content="summary" />
                            <meta name= "twitter:site" content="@#####" />
                            <meta property="og:title" content='<c:out value=" ${row.######} "/>' />
                            <meta name="og:description" content='<c:out value=" ${Jsoup.parse(row.######).text()} "/>' />
                            <meta name="twitter:card" content='<c:out value=" ${Jsoup.parse(row.######).text()} "/>' />
                            <c:if test="${not empty row.#####}">
                                <meta property="og:image" content='/UserImages/<c:out value=" ${fn:trim(row.####)} "/>' />
                                <meta name= "twitter:card" content="summary_large_image" />
                            </c:if>
                        </c:forEach>
                    </head>
    
                    <body>
    
                    </body>
    
                </html>
    
  2. 我已经使用Tuckey Urrewrite构建了一个轨道检测模块,如果其用户我显示正常页面,而如果其crawler显示了一个非公共JSP页面.

    <rule>
        <condition name="user-agent" next="or">facebookexternalhit/*
    </condition>
        <condition name="user-agent" next="or">Facebot</condition>
        <condition name="user-agent">Twitterbot/*</condition>
        <from>/wall/*</from>
        <set name="postUrl">$1</set>
        <to>/crawler-index.jsp</to>
    </rule>
    <rule>
        <from>/wall/*</from>
        <to>/index.jsp</to>
    </rule>
    

本文地址:https://www.itbaoku.cn/post/1740104.html