使用apache v-host中设置的环境变量来设置查询参数

时间:2016-02-22 19:25:49

标签: apache vhosts

我们在Apache vhost中设置了一个环境变量CODE

我想映射传入的请求

^/myresource?paramOne=one&paramTwo=two

/some-path-to/my-resource/resource.php?paramOne=one&paramTwo=two&code=theEnvCode

在vhost RewriteRule中,有没有办法将“code”查询参数设置为env var CODE的值,并传入来自传入请求的所有其他查询参数?:

RewriteRule ^/my-resource /some-path-to/my-resource/resource.php [QSA,L]

Setenv CODE theEnvCode

修改

一种可能性是硬编码“code”参数,将追加请求中的任何其他参数。但问题是如何保持同步 代码参数和环境变量CODE

RewriteRule ^/my-resource /some-path-to/my-resource/resource.php?code=theEnvCode [QSA,L]

Setenv CODE theEnvCode

/my-resource?one=two&three=four的请求将映射到/some-path-to/my-resource/resource.php?code=theEnvCode&one=two&three=four

1 个答案:

答案 0 :(得分:0)

由于您重写而不是重定向到另一台服务器,因此您的env变量仍可在目标网址中使用。为什么不在PHP脚本中使用apache_getenv()检索它?没有必要将它作为GET参数传递。 见http://php.net/manual/en/function.apache-getenv.php