身份验证下的 Apache 代理规则配置

身份验证下的 Apache 代理规则配置

我需要在我的服务器中创建一条规则,当用户登录我的系统(moodle)时,将两个 url 流量重定向到另一台服务器。

我相信我需要的是创建一个proxyPass规则ProxyReverse和一个rerwiteRule检查用户是否已登录的规则。像上面一样

RewriteEngine on
RewriteRule "^(.*)subdomain/(.*)$" "/moodle/mod/plugin/authCheck.php?file=$1"  [L]

ProxyPass               /playback         https://remoteserver/playback
    ProxyPassReverse        /playback         https://remoteserver/playback

    ProxyPass               /presentation     https://remoteserver/presentation
    ProxyPassReverse        /presentation     https://remoteserver/presentation

但它不起作用,甚至无法获得身份验证码。

我感谢任何帮助,甚至评论也能有所帮助。

答案1

也许这样会有帮助

RewriteCond %{LA-U:REMOTE_USER} !^$

根据http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond,该变量在用户通过身份验证后设置。我认为这只适用于 .htaccess/apache 身份验证方法。

我曾经遇到过类似的问题,但我用一个 php 脚本解决了它,我可以检查用户是否已登录。一个简单的 php标题命令 (http://php.net/manual/pl/function.header.php)解决了重定向问题。

相关内容