我正在使用apache
基本身份验证,并设置我服务器验证允许的REMOTE_USER
标头。我正在使用apache
反向代理。
ProxyPass /location http://myip:8000/location
ProxyPassReverse /en-US http://myip:8000/location
<Location /location>
AuthType Basic
AuthName "Restricted Files"
# (Following line optional)
AuthBasicProvider file
AuthUserFile /home/tomcat/apache/.htpasswd
Require valid-user
RewriteEngine on
RewriteRule .* - [E=RU:%{REMOTE_USER}]
RequestHeader set X-Remote-User %{RU}e
RequestHeader set REMOTE-USER %{REMOTE_USER}s
</Location>
以上解决方案工作正常。但我需要对PHP
做同样的事情。我可以使用与上述身份验证标头类似的标头将php重定向发送到/ location。
我需要用php进行用户身份验证,身份验证完成后我想让他进入上面的proxypass.
答案 0 :(得分:0)
您正在寻找PHP header
函数来发送WWW-Authenticate
和401
标题:
header("HTTP/1.1 401 Unauthorized
header("WWW-Authenticate: Basic realm=<YOUR REALM>");
然后,使用$_SERVER["PHP_AUTH_USER"]
和$_SERVER["PHP_AUTH_PW"]
来输入用户名和密码。
把它们放在一起:
<?php
header("HTTP/1.1 401 Unauthorized");
header("WWW-Authenticate: Basic realm=<YOUR REALM>");
if (!($_SERVER["PHP_AUTH_USER"] == $username && $_SERVER["PHP_AUTH_PW"] == $pw))
{
exit("Sorry, you entered the wrong username and password.");
}
?>