2012-01-19 40 views
9

Tôi muốn lưu trữ hằng số INDEX_URL một cách dễ dàng nhất có thể.lưu biến cố định trên máy chủ thông qua .htaccess

Có một trang web dành cho nhà phát triển và một trang web bình thường. Nếu có bất kỳ thay đổi nào trên trang web của nhà phát triển, Tôi muốn chỉ sao chép toàn bộ tệp nhưng hằng số này không giống nhau trên 2 trang web.


tôi đã thực hiện kiểm tra này:

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

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

Có vẻ như nó không lưu trữ giá trị.


phương pháp thay thế:

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

Trả lời

10

Bạn có thể lưu nó như biến môi trường. Đặt điều này trong .htaccess:

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

Và có được nó trong PHP:

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

Đây là một đường nối tuyệt vời nhưng không hoạt động. Nguyên nhân có thể là gì? –

+2

Tôi nghĩ rằng máy chủ web của bạn không cho phép ghi đè cài đặt. Nếu bạn đang sử dụng Apache, hãy thực hiện tiếp theo trong bạn http config: AllowOverride All – pltvs

+0

Tôi đã mệt mỏi với AllowOverride All mà không thành công. (xem câu hỏi được cập nhật) –

6

Để thực hiện chuyển đổi giữa các host tự động Bạn có thể sử dụng 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'] : ''; 
Các vấn đề liên quan