当网页提供要求用户登录的内容时,有两种方法可以让他们验证自己:
Web 应用程序存储 URL,然后重定向到单独的登录页面,然后在成功验证后重定向回存储的 URL;
页面显示的不是 protected 内容,而是登录表单(保持在同一 URL),并且在成功登录操作后页面刷新并显示真实内容。
我想知道以下内容:
- 如果我选择选项 1,应该使用什么正确的 http 状态代码? ( 302 is probably the correct one ,所以我在这里列出这个问题只是为了完整起见。)
- 选项 2 的适当 HTTP 状态代码是什么? 401 很诱人,但我不想使用 http 身份验证。
- 一个子问题:为什么 http 身份验证如此不常见?
- 如何确保抓取工具不会将 protected 内容的标题、关键字、描述和其他元数据与登录表单相关联?
实际上这是我真正想知道的:
- 在上述情况下,http 状态代码是否重要?使用正确的状态代码是否有任何实用的好处?
最佳答案
您想使用选项 1。原因是如果您在每个需要登录的 URL 上显示表单,您将遇到两个问题:
- 搜索引擎会认为登录表单是该 URL 的实际内容,而不是实际内容。显然,这不是您想要的。
- Google 会看到所有这些页面重复内容,这是一件坏事。他们的 Panda 算法专门针对大量重复内容,这可能会导致您的整个网站因低质量内容而受到惩罚。
正如您已经发现的那样,使用 302 重定向是执行此操作的正确方法。使用正确的状态代码确实很重要。搜索引擎解释它们的含义并发送错误的状态代码可能会导致负面后果。由于发送正确的 HTTP 状态代码很容易做到,因此绝对值得一做。
关于redirect - 需要登录的网页应该重定向到登录页面还是只显示表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10764890/