【问题标题】:Access env variable with space in .htaccess使用 .htaccess 中的空格访问环境变量
【发布时间】:2018-06-29 06:28:27
【问题描述】:

我在 /etc/environment 中定义了环境变量,并在 .htaccess 中访问这些变量来设置环境变量。除了有空格的变量之外,所有变量都工作正常。

例子:

在我的 /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 variable is causing an error

这里 SITE_IDENTITY 变量由于变量值中的空格而导致错误。

我已经尝试过以下不起作用:

export SITE_IDENTITY="Bliss Five" export SITE_IDENTITY=Bliss\ Five

【问题讨论】:

    标签: linux .htaccess ubuntu


    【解决方案1】:

    我已通过以下更改解决了此问题:

    在我的 /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

    这解决了我的问题。干杯!!!

    【讨论】:

      【解决方案2】:

      如果你使用这种方法,你需要在每次更改时重新启动 apache2(/etc/environment),因为你需要在 /etc/apache2/envvars 中加载 /etc/environment,它只在启动时加载apache2的。

      并且/etc/environment中的字符串需要加引号。

      我建议将其设置在 .htacesss 中,通常在 webhostings 上加载每个请求。

      另一方面,当站点变得更大并且更好地禁用加载.htaccess(通过AllowOverride None)并通过直接包含将它们设置为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
      

      【讨论】:

      • 感谢@Jakub,我确实重启了 apache2 几次。我也尝试了引用的内容,但是没有得到任何积极的结果。
      • 这很奇怪,我测试一下设置看看:stack.pinkas.it,你可以在 _SERVER 变量中看到。
      猜你喜欢
      • 1970-01-01
      • 2019-05-04
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多