Доступ к переменной env с пробелом в .htaccess - PullRequest
0 голосов
/ 29 июня 2018

Я определил переменные окружения в / 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

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Я решил эту проблему со следующими изменениями:

В моей / 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

Это решило мою проблему. Ура !!! * * 1013

0 голосов
/ 29 июня 2018

Если вы используете этот метод, вам нужно перезапускать apache2 при каждом изменении (/ etc / environment), потому что вам нужно будет загрузить / etc / environment в / etc / apache2 / envvars, который загружается только при запуске apache2.

И строка в / etc / environment должна быть заключена в кавычки.

Я бы порекомендовал установить его только в .htacesss, который загружается с каждым запросом обычно на веб-хостингах.

С другой стороны, у него есть проблемы с производительностью, когда сайт становится больше, и лучше отключить загрузку .htaccess (через AllowOverride None) и установить их в конфигурацию vhost через include напрямую. При этом вам нужно будет только перезагрузить конфигурацию с каждым изменением, а не перезапускать, что лучше, чем у вашего решения.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...