【问题标题】:Redirecting a HTTP rqueust and response code/headers重定向 HTTP 请求和响应代码/标头
【发布时间】:2010-03-25 22:21:57
【问题描述】:

我有一个松散耦合的 Web 应用程序(一部分使用 PHP,另一部分使用 WGSI)。 WSGI/python 框架与 PHP 应用程序共享身份验证,这意味着通常,用户应该

  1. 通过PHP界面登录
  2. 现在用户可以访问任何 WSGI 页面[如果用户已经登录,这部分可以工作]

我想要做的是,如果用户在未登录的情况下(可能来自以前的书签)尝试访问 WSGI 页面,我想将他重定向到登录页面,并在登录后将他重定向回来到原来的网址。

我对服务器端编程不是很有经验,所以这是我的问题。

  1. 我应该如何将用户重定向回 PHP 登录页面? HTTP 状态码应该是什么?我需要设置任何额外的标头信息吗?

  2. 将原始 URL 传递到登录页面,然后在登录后将用户重定向回来的好方法/最佳实践方法是什么。

谢谢!

【问题讨论】:

  • 不知道使用什么身份验证机制,有点难以准确的建议。你是使用 PHP 实现的 HTTP Basic 身份验证,还是基于表单/会话/cookie 的方法?

标签: http url header response wsgi


【解决方案1】:

如果用户未登录,您可以将状态码设置为401 Unauthorized 并使用location: /login.php?dest=/admin/only.php 重定向。

这看起来像:

header("HTTP/1.0 404 Not Found");
header("Location: /login.php?dest=" . $_SERVER['PHP_SELF']);

在 php 中。

【讨论】:

  • @Eli,您是对的,对于错误信息,我们深表歉意。来自 RFC 2616:“每个标头字段由一个名称后跟一个冒号 (“:”) 和字段值组成。字段名称不区分大小写。”
猜你喜欢
  • 2018-02-20
  • 1970-01-01
  • 2014-10-10
  • 2014-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-08
  • 2015-11-09
相关资源
最近更新 更多