我在/ etc / environment中定义了环境变量,并在.htaccess中访问了这些变量以设置环境变量。除了具有空格的变量以外,所有变量都工作正常。
示例:
在我的/ etc /环境中
export SITE_NAME=Bliss
export SITE_IDENTITY=Bliss Five
在.htaccess中
SetEnv SITE_NAME ${SITE_NAME} #This works fine
SetEnv SITE_IDENTITY ${SITE_IDENTITY} #This variable is causing an error
由于变量值中的空格,此处SITE_IDENTITY变量引起错误。
我尝试了以下不起作用的方法:
export SITE_IDENTITY="Bliss Five"
export SITE_IDENTITY=Bliss\ Five
答案 0 :(得分:0)
如果使用此方法,则需要在每次更改(/ etc / environment)时重新启动apache2,因为您需要将/ etc / environment加载到/ etc / apache2 / envvars中,该文件仅在启动时加载apache2。
/ etc / environment中的字符串需要用引号引起来。
我建议仅在.htacesss中设置它,通常在虚拟主机上随每个请求一起加载。
另一方面,当站点变大并且更好地禁用加载.htaccess(通过AllowOverride None)并将其直接通过include设置为vhost配置时,它会遇到一些性能问题。这样,您只需要在每次更改时重新加载配置,而无需重新启动,这比您拥有的解决方案更好。
root@frenkye:/home/www/pinkas.it/subdomains/stack$ cat /etc/environment
export SITE_NAME=Bliss
export SITE_IDENTITY="Bliss Five2"
root@frenkye:/home/www/pinkas.it/subdomains/stack$ cat /etc/apache2/envvars
# envvars - default environment variables for apache2ctl
. /etc/environment
答案 1 :(得分:0)
我通过以下更改解决了此问题:
在我的/ etc / environment环境中,我使用引号表示具有空格的变量值。
export SITE_NAME=Bliss
export SITE_IDENTITY="Bliss Five"
在.htaccess中,我也对带空格的变量使用了引号
SetEnv SITE_NAME ${SITE_NAME} #This works fine
SetEnv SITE_IDENTITY "${SITE_IDENTITY}" #This works fine now
这解决了我的问题。干杯!!!