Назад | Перейти на главную страницу

Как вы используете SetEnv для чтения переменных в Apache?

Я хочу установить переменную env, содержащую информацию DOC_ROOT, но ничего

SetEnv PROJECT_BASE %{ENV:DOC_ROOT}
SetEnv LAYOUT_HOME  %{ENV:PROJECT_BASE}"/html/app/wordpress/"

а затем получить доступ к LAYOUT_HOME в php

Как я могу это сделать? Вышеупомянутое не работает для меня ...

Проблема в том, что базовый путь отличается в средах diff = /

SetEnv - это директива для mod_env, а mod_env не поддерживает% {ENV: var} - это делает только mod_rewrite. Не забывайте, что apache является модульным, а модули определяют свои собственные директивы. Вы можете сделать это с помощью mod_rewrite следующим образом:

 RewriteRule .* -  [E=PROJECT_BASE:%{ENV:DOC_ROOT}]
  ... etc

Я должен спросить, что вы на самом деле пытаетесь сделать? Должен быть способ получше. Я не могу придумать причины определять вашу переменную LAYOUT_HOME в apache вместо php.

Использовать getenv, док здесь.

Он получит любую переменную среды, просто используйте ее, чтобы получить ту, которую вы установили в Apache.