在Apache中使用mod_rewrite时如何传递REMOTE_USER环境变量?

时间:2015-08-22 22:01:29

标签: apache mod-rewrite

我有以下Apache配置:

Alias /HelpdeskSignIn/ /opt/HelpdeskSignIn/web/
    <Location /HelpdeskSignIn/>
            Order allow,deny
            Allow from all
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*) app.php [E=RU:%1,QSA,L]
            RequestHeader set REMOTE_USER %{RU}e
            RedirectMatch permanent ^/app\.php/(.*) /$1
    </Location>
    <Location /HelpdeskSignIn/cccs>
            AuthType CAS
            Require valid-user
    </Location>

应用程序的根目录不需要身份验证,但如果有人访问其子目录,则需要进行身份验证。如果我在整个事情上需要一个有效的CAS用户并使用PHP检查它的值,那么当我尝试上面的代码时,在/ cccs中点击PHP代码时,REMOTE_USER总是为空。我尝试了几种在重写时传递环境变量的方法,但它似乎不起作用。这有可能还是有更好的方法呢?

1 个答案:

答案 0 :(得分:1)

@mario得到了答案!我的问题是我一直试图在重写上设置变量,但是我并不关心我是如何得到这个值的......我不知道它是否可能设置为REDIRECT_REMOTE_USER,它就是。 / p>

对于它的价值,使用nginx和php-fpm以及fastCGI的重定向,这不会发生在框架中。就我而言,我使用的是框架。

这是一个有点类似的问题,在我的搜索中没有出现,因为我没有正确使用Google搜索:有关于此主题的一些有用信息: Accessing REMOTE_USER from PHP/CakePHP