2012-01-19 10 views
9

Me gustaría almacenar la constante INDEX_URL de la manera más fácil posible.almacenar variable constante en el servidor a través de .htaccess

Hay un sitio de desarrollador y un sitio normal. Si hay algún cambio en el sitio del desarrollador, me gustaría simplemente copiar los archivos completos, pero esta constante no es la misma en los 2 sitios.


me han hecho esta prueba:

putenv("TEST=TEST"); 
var_dump(getenv('TEST')); //TEST 

//putenv("TEST=TEST"); 
var_dump(getenv('TEST')); //false 

Parece que no almacena el valor.


Método alternativo:

define('__INDEX_URL__',"http://".$_SERVER['SERVER_NAME']."/index.php"); 

Respuesta

10

se puede guardar como variable de entorno. Poner esto en .htaccess:

SetEnv INDEX_URL http://example.com/index.php 

y conseguir que en PHP:

$indexUrl = getenv('INDEX_URL'); 
+0

Este se ve muy bien pero no funciona. cual puede ser la razon? –

+2

Creo que su servidor web no permite anular la configuración. Si está utilizando Apache, haga lo siguiente en su configuración de http: AllowOverride All – pltvs

+0

He cansado de AllowOverride All sin éxito. (vea también la pregunta actualizada) –

6

Para hacer el cambio entre los ejércitos de forma automática Usted podría utilizar SetEnvIf:

.htaccess:

SetEnvIf Host host\.com INDEX_URL=http://host.com/index.php 
SetEnvIf Host dev\.host\.com INDEX_URL=http://dev.host.com/index_dev.php 

PHP:

$indexUrl = isset($_SERVER['INDEX_URL']) ? $_SERVER['INDEX_URL'] : ''; 
Cuestiones relacionadas