2016-01-04 80 views
6

我打算使用單個.htaccess文件,該文件可能部署在多個服務器上。在此過程中,我正在設置.htaccess文件中的環境變量,並且有幾種情況下我想要將IP地址讀入設置。例如,在一個情況下,我設置環境變量本地數據庫連接:如何將本地IP地址讀入.htaccess文件?

SetEnv DBL "mysql:dbname=oars;host=192.168.101.1;port=3306" 

然後在PHP中我會閱讀使用變量由數據庫交互:

define('DBL', getenv('DBL')); 

由於我計劃部署在多臺服務器上是否有一種方法可以自動獲取IP地址,而不是爲每臺服務器維護單獨的.htaccess文件?

+1

如果你想爲MySQL的本地數據庫連接,你爲什麼不使用'127.0.0.1'?對此,爲什麼不使用'localhost'和UNIX套接字代替TCP/IP? – Quentin

+0

由於我們系統的某些特性,我們不能使用localhost或127.0.0.1地址@Quentin –

+1

使用'SetEnv DBL'mysql:dbname = oars; host =%{SERVER_ADDR}; port = 3306「'? – Croises

回答

7

您可以使用一個規則來設置環境變量:

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 
+3

哦!哇!我不知道你可以通過重寫規則設置環境變量。真正的眼睛開放和完美的作品。 –