繁体   English   中英

如何用SEO为主的静态HTML平衡数据库留言板的POST / GET PHP页面?

[英]How do I balance POST/GET PHP pages for a database message board with SEO-minded static HTML?

预先感谢任何可以帮助解决此问题的人。 我已经使用html表单,PHP和SQL构建了一个告示板数据库。 该网站允许人们发布主题,然后针对每个主题发布消息。 然后,他们可以对每条消息投赞成票或反对票。

现在,我通过一个PHP页面完成所有操作,并使用POST。 当我使用GET时,每次我使用“后退”和“前进”按钮时,都会询问我是否要重新发送表单(非常烦人)。 我想保护数据,所以我切换到POST,但是如果有人在投票后点击刷新,它将再次投票。 我该如何解决? 也不应该刷新“发布信息”吗?

我也正在考虑通过单独的PHP页面通过GET来显示主题页面的初始呈现(在他们单击搜索中的主题名称后出现)。 这样,可以链接到主题页面的url(因为实际主题位于URL中,而不是POST页面,而主题不在URL中)。 虽然,即使执行此操作,但在有人单击投票后,结果页面是相同的,只是URL中没有主题(因为它现在是通过POST),而且人们可能没有意识到他们可以链接到该页面。完全没有 通过POST选项投票后,是否可以将页面重定向到GET版本?

最后,我的主要问题是关于SEO。 我希望可以在Google上搜索主题页面。 因此,我正在考虑让PHP动态生成静态HTML页面。 这是唯一的方法吗? 我应该即时制作它们吗? 还是每天生成一次? 我认为,当人们对HTML页面中的消息进行投票时,这将通过POST触发相应PHP页面的加载。 但是,这却引出了一个问题..如果我要发布指向特定主题页面的链接(或者如果我将其设置为使人们可以链接到一个关闭的facebook),我是否应该将其链接至静态html页面还是通过使用GET和PHP动态创建它的URL? 还是应该使用HTML页面,但将其重定向到GET页面的url? 还是有一种方法可以让google识别GET页面的网址,并让google直接提供指向它们的链接? 我想不,因为它们是动态生成的,而不是静态HTML。 如果我在那里建立指向PHP页面的链接,但是google将人们引导至统计HTML版本,这有关系吗? 我觉得SEO最好的办法是使所有内容保持一致,以便将所有“匹配”加在一起。

很抱歉有这么多问题,但是我认为这些都是及时的问题,影响到大多数希望在google中搜索其页面的数据库站点。

只需继续使用POST请求,然后在数据库中存储了一组数据后便进行重定向。

header('Location: /myPage.php?voteSuccess=1');
exit;

那么刷新页面时您就不会遇到多次输入数据的问题。 也可以像这样,根据get-param轻松在页面上打印一个投票成功的通知。

您必须确保在调用header()函数之前,没有数据发送到客户端,即。 通过回显/打印等。否则,cal lto header()将导致错误

要回答第二个问题,只需通过get-params使所有内容可用。 确保将它们链接到谷歌已经知道的页面上的某个位置(即使用<a>-标签)。 链接到您的主页,然后链接到您的详细信息页面就足以让Google查找您的所有内容。

这也是html meta-tags,告诉蜘蛛机器人您希望他们多久重新访问该页面并检查更新的内容等...,但最后SEO还是一个强制主题,我不认为您可以通过在这里提问可以充分了解它。 如果您想读一读,可以真正读一本书或至少读一些好的教程。

以下是您需要考虑的几件事:

关于引起重新投票的刷新,您可以通过几种不同的方法进行修复。 有些人会使用Cookie /会话变量。 另一种方法是设置另一个标志(默认值为0),并在POST时将其递增。 如果标志为1(刷新),则不要发布。

恕我直言,不走导出静态HTML并写入文件系统的道路。 这对于您所需的功能来说是过大的了-URL重写。 有几种选择。 太酷了 查一下

URL重写的工作方式是这样的:您的href标记将以您期望的“友好”外观(以编程方式)写入PHP。 URL重写器将解释伪造的URL字符串(当然不计算TLD),并将SEO优化的URL解码您要隐藏的URL变量。 浏览器已将伪造的字符串作为其请求发送,仅显示漂亮的URL,每个人都非常高兴地意识到其底下的丑陋。

构建最佳URL涉及一些技巧和最佳实践。 如果您不小心,将会为自己带来一些新问题。 我无法承受太大的压力,您真的想在实现它之前先草绘出您的友好URL,并将其与其他非常大的站点进行逻辑比较。

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM