[英]htaccess SetEnv directive is not working in MAMP pro 6
我有一個用 PHP 開發的解決方案
我的根文件夾中有這個 .htaccess:
SetEnv 指令設置如下:
<IfModule mod_env.c>
SetEnv APPLICATION_ENV=development
</IfModule>
正確的env模塊加載在Apache:
我的主機配置有 AllowAoverride All 我的 AccessFileName 設置為.htaccess
我在索引文件中使用這段代碼來讀取環境變量,但無法獲取值。
defined('ENVIRONMENT') || define('ENVIRONMENT', (getenv('APPLICATION_ENV')? getenv('APPLICATION_ENV'): 'production'));
echo ENVIRONMENT. PHP_EOL;
考慮到.htaccess 中的SetEnv,應該get development 有價值,但我一直get production。
我確實進行了測試以確保加載了 mod_env 和 mod_setenvif。 我的apache日志和php日志都沒有報錯。
我不知道為什么。 歡迎任何幫助?
謝謝!
在 .htaccess 文件中使用 SetEnv 設置的環境變量在SetEnv
環境中可用,因此您應該使用apache_getenv()
或$_SERVER
superglobal 來訪問變量而不是getenv()
。
您似乎正確使用了 SetEnv,並且您的設置的 rest 看起來不錯。
也許您可能對根目錄中的 .env 文件感興趣,並使用vlucas/dotenv加載它,然后在您的代碼中使用 Dotenv。
這是使用 package 的示例:
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
它將在__DIR__
中查找 an.env 文件並將它們加載到您的環境中,通過getenv()
使它們可用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.