Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess htaccess使用另一个环境变量设置环境变量_.htaccess_Variables_Environment Variables - Fatal编程技术网

.htaccess htaccess使用另一个环境变量设置环境变量

.htaccess htaccess使用另一个环境变量设置环境变量,.htaccess,variables,environment-variables,.htaccess,Variables,Environment Variables,我的问题找不到答案 我可以使用另一个环境变量设置环境变量吗 例如: SetEnv msg_1 "First message" SetEnv msg_2 "%{ENV:msg_1} Second message" 说清楚一点,我不想使用%{ENV:msg_1}%{ENV:msg_2} 我不想使用%{ENV:msg_2} 这可能吗,因为我觉得不起作用?这是一个有趣的问题。SetEnv的特性和范围非常有限 你可以在这里用 设置msg_1 SetEnvIf主机^

我的问题找不到答案

我可以使用另一个环境变量设置环境变量吗

例如:

SetEnv msg_1 "First message"
SetEnv msg_2 "%{ENV:msg_1} Second message"
说清楚一点,我不想使用%{ENV:msg_1}%{ENV:msg_2}

我不想使用%{ENV:msg_2}


这可能吗,因为我觉得不起作用?

这是一个有趣的问题。SetEnv的特性和范围非常有限

你可以在这里用

设置msg_1 SetEnvIf主机^msg_1=第一条消息 使用msg_1设置msg_2 SetEnvIf msg_1.*msg_2=$1秒消息
$1是我们在第1组中捕获的值,即。*所有内容。

这是一个有趣的问题。SetEnv的特性和范围非常有限

你可以在这里用

设置msg_1 SetEnvIf主机^msg_1=第一条消息 使用msg_1设置msg_2 SetEnvIf msg_1.*msg_2=$1秒消息 $1是我们在第1组中获得的价值,即。*一切

您将需要使用mod_rewrite或setenif-See来使用另一个env变量的值来设置环境变量。不幸的是,SetEnv mod_env和setenif mod_setenif没有在结果表达式中使用语法%{env:varname}来扩展env变量的值,它只是被视为文本

但是,如果使用mod_rewrite,则不能使用SetEnv设置初始环境变量,因为它处理得太晚。您需要使用setenif或mod_rewrite来设置初始环境变量

例如:

RewriteEngine on

SetEnvIf ^ ^ "msg_1=First message"

RewriteRule ^ - "[E=msg_2:%{ENV:msg_1} Second message]"
请注意按策略放置的双引号,因为value参数包含空格

setenif-setenif指令中的整个name=value对必须用双引号括起来,而不是值

RewriteRule-整个flags参数需要用双引号括起来,而不是值

这确实比setenif更具灵活性,因为如果需要,可以在值部分引用任意数量的env变量

您将需要使用mod_rewrite或setenif-See来使用另一个env变量的值来设置环境变量。不幸的是,SetEnv mod_env和setenif mod_setenif没有在结果表达式中使用语法%{env:varname}来扩展env变量的值,它只是被视为文本

但是,如果使用mod_rewrite,则不能使用SetEnv设置初始环境变量,因为它处理得太晚。您需要使用setenif或mod_rewrite来设置初始环境变量

例如:

RewriteEngine on

SetEnvIf ^ ^ "msg_1=First message"

RewriteRule ^ - "[E=msg_2:%{ENV:msg_1} Second message]"
请注意按策略放置的双引号,因为value参数包含空格

setenif-setenif指令中的整个name=value对必须用双引号括起来,而不是值

RewriteRule-整个flags参数需要用双引号括起来,而不是值


这确实比setenif更灵活,因为如果需要,您可以在值部分引用任意数量的env变量。

我喜欢这个^^++I喜欢这个^^++啊,是的,我忽略了您可以在setenif指令本身中引用另一个env变量++啊,是的,我忽略了您可以在setenif指令本身中引用另一个env变量++