2

如果我有一个请求客户端无权访问的资源,但我想通知他们他们有权访问的备用资源403 Forbidden我应该在标题或内容中向他们发送备用资源的 URI 吗?还是我应该只向303 See Other他们有权访问的资源发送重定向?

4

3 回答 3

1

没有“禁止但看看这个”的 HTTP 代码。

但是,您可以自定义 403 错误页面,以便显示指向替代内容的链接。如果您有多个替代链接,您可能会发现此解决方案更好。

如果通知用户访问被拒绝不是那么重要,您可能希望使用 302(临时重定向),或者,如果用户永远无法访问被禁止的内容,则使用 301(永久重定向)。

于 2008-10-14T02:25:29.547 回答
1

如果有人看到错误页面,那么您选择什么代码并不重要。如果有人类可读的错误信息;人们会忽略代码。

问题是你想让机器做什么?您是否希望机器在任何情况下都自动重定向到替代内容?如果某人有正当理由以编程方式从您的网站获取页面,在这种情况下他们是否应该获得替代内容?或者,如果有人使用缓存代理服务器,您是否希望它自动重定向?

如果您不希望它在这些情况下自动重定向,那么 403 是正确的答案。如果您希望人们获得正确的内容,并且只有真正好奇的用户才会关心原始内容是否被禁止,那么 301 或 302 会更有意义。

于 2008-10-14T04:46:45.110 回答
0

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

我想你正在寻找 300 家族的东西。自动重定向似乎比 403 友好得多。

另外,403 使对象看起来很有趣,并且可能会引起更多的探测。

于 2008-10-14T01:46:49.763 回答