最近SEO 的同事找到我们开发人员说,一些百度快照 收录的网址 点进去后出现乱码,要我们立刻修复这些问题。
我照她的方式打开链接 如下图:
我日,这不就是 返回的 json 格式吗。
我找到如下代码:
<action name="showNewsByTypeUINew1" method="showNewsByTypeUINew1" class="newsAction">
<result name="success" type="json">
<!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 -->
<param name="root">dataMap</param>
</result>
</action>
showNewsByTypeUINew1 这个方法返回的是json 格式,这个没有错。
但是为什么它会被收录?
然后我又看到下面的一段代码:
<pre name="code" class="html"><action name="showNewsDetailUI_*" method="showNewsDetailUI" class="newsAction">
<param name="nidStr">{1}</param>
<result name="success">/WEB-INF/news/showNewsDetailUI.jsp</result>
<result name="showNews" type="redirectAction">
<param name="actionName">showNewsByTypeUINew1</param>
<param name="namespace">/news</param>
</result>
</action>
<action name="*" method="{1}" class="newsAction">
<result name="success">/WEB-INF/news/{1}.jsp</result>
<result name="showNews" type="redirectAction">
<param name="actionName">showNewsByTypeUINew</param>
<param name="namespace">/news</param>
</result>
</action>
holy shit ,哪位同事让 showNewsDetailUI 这个action 返回结果重新定向到 这个
showNewsByTypeUINew1 方法。
这就是 百度收录json 的原因。
撸主是这么修改的:
<action name="showNewsDetailUI_*" method="showNewsDetailUI" class="newsAction">
<param name="nidStr">{1}</param>
<result name="success">/WEB-INF/news/showNewsDetailUI.jsp</result>
<result name="showNews">/WEB-INF/invest/error.jsp</result>
</action>
<action name="*" method="{1}" class="newsAction">
<result name="success">/WEB-INF/news/{1}.jsp</result>
<result name="showNews">/WEB-INF/invest/error.jsp</result>
</action>