开发者

mod_rewrite and server environment variables

The setup I have is as follows:

I have one Apache server acting as a URL rewriting engine (SERVER1).

I have a second server (Apache too) which runs a web application (SERVER2). First tries to authenticate users. Part of the authentication protocol involves a lot of redirection between that application server and the authentication server.

My problem is that once the authencation is successfull, the authentication server needs to redirect the user开发者_如何学编程 back to the application server, which is only visible from SERVER1. Effectively, SERVER2 needs to be able to reconstruct a URL based on SERVER1's parameters.

Most of the environement variable are helpful i.e. I know the host name, script name, page called etcc but I can 't figure out wether the call was made through HTTP or HTTPS: that information is wiped in the rewrite process by SERVER1...

Anybody knows if/how I can get that information through environement variables? I am limited in that I can't use query string parameters...

Thanks all !


This may sound strange, but I have found part of the answer to my question.

The rewrite engine (at least in Apache 2, I haven't looked anywhere else) allows for writting extra request header.

The rule should look something like that.

RewriteRule .* - [E=INFO_PATH_INFO:%{PATH_INFO},NE]

Put simple, it creates a new header called INFO_PATH_INFO and sets the value to PATH_INFO. ( For more info check out http://www.askapache.com/htaccess/crazy-advanced-mod_rewrite-tutorial.html )

Then it can be retrieved in any languages. For info I am using Oracle's OWA which adds an extra layer of complication due to the fact that the default environment variables are limited to a few and additional variables need to be specified in thr dads.conf

Hope this will help anyone !

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜