Apache 如何将本地IP地址读入.htaccess文件?
我计划使用一个Apache 如何将本地IP地址读入.htaccess文件?,apache,.htaccess,Apache,.htaccess,我计划使用一个.htaccess文件,该文件可以部署在多台服务器上。在这个过程中,我在.htaccess文件中设置环境变量,在一些情况下,我希望将IP地址读取到设置中。例如,在一种情况下,我正在为本地数据库连接设置一个环境变量: SetEnv DBL "mysql:dbname=oars;host=192.168.101.1;port=3306" 然后在PHP中,我将读取变量以供数据库交互使用: define('DBL', getenv('DBL')); 由于我计划在多台服务器上部署,是否有
.htaccess
文件,该文件可以部署在多台服务器上。在这个过程中,我在.htaccess
文件中设置环境变量,在一些情况下,我希望将IP地址读取到设置中。例如,在一种情况下,我正在为本地数据库连接设置一个环境变量:
SetEnv DBL "mysql:dbname=oars;host=192.168.101.1;port=3306"
然后在PHP中,我将读取变量以供数据库交互使用:
define('DBL', getenv('DBL'));
由于我计划在多台服务器上部署,是否有办法自动获取IP地址,而不是为每台服务器维护单独的.htaccess文件?您可以使用规则设置Env变量:
RewriteEngine on
RewriteRule ^ - [E=DBL:mysql\:dbname=oars\;host=%{SERVER_ADDR}\;port=3306]
print getenv("DBL");
mysql:dbname=oars;host=1.2.3.4.5;port=3306
如果您想要MySQL的本地数据库连接,为什么不使用
127.0.0.1
?关于这一点,为什么不使用localhost
和UNIX套接字而不是TCP/IP?由于我们系统的一些特性,我们不能使用localhost或127.0.0.1地址@quentinhithSetEnv DBL“mysql:dbname=oars;host=%{SERVER\u ADDR};port=3306”
,这会引发一个错误@croiesSQLSTATE[HY000][2005]未知的MySQL服务器主机“{server\u ADDR}”(0)
Oh-wow!我不知道可以通过重写规则设置环境变量。真的大开眼界,工作完美。