Я хочу установить переменную 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.