2013-05-25 57 views
4

我想使用htaccess自動包含一個global.php文件。現在我有.htaccess auto_prepend_file如果url包含

php_value auto_prepend_file "/local/directory/global.php" 

它工作完美。問題是,我在本地服務器上運行這個站點以進行開發,並在活動站點上運行遠程Web服務器。所以顯然,根據我是在mysite.com還是mysite.local,/ local/directory /路徑將是可變的。

有沒有辦法說如果url包含mysite.local,包含這個文件;否則包含這個文件,在htaccess裏面?

+0

爲什麼不在本地主機和生產環境中使用不同的'.htaccess'文件? – CBroe

+0

或者,由於使用了'include_path'設置,爲什麼不給'auto_prepend_file'提供_relative_路徑而不是絕對路徑? – CBroe

+0

是的,如果我有兩個單獨的.htaccess文件,這是我的解決方案,如果沒有其他解決方案..但我寧願不這樣做。 – garetmckinley

回答

2

您需要Apache> = 2.4才能使其成爲真正的條件。

<If "%{HTTP_HOST} == 'mysite.local'"> 
    # ... 
</If> 
<Else> 
    # ... 
</Else> 

對於更早的版本,這是唯一可能通過添加-D選項啓動命令行(下面-DLOCAL),則:

<IfDefine LOCAL> 
    # ... 
</IfDefine> 
<IfDefine !LOCAL> 
    # ... 
</IfDefine> 

(爲Apache> = 2.4,也可參見定義指令 - 同樣的效果,增加了-D參數)

+0

這是我希望找到的確切解決方案。但是,我的現場服務器運行2.2.22,所以它不幸的是不會爲我工作。但是,如果你正在運行2.4+以上的絕佳解決 – garetmckinley

0

使用網站custodia設置 對於lightpd走在php.ini和alocat的.user.ini 美元對於Apache必須設置allowOveride所有YouTube網站directori並在那位導演的身上展示一個.hta訪問包含「php_value autoprepend_file路徑」的文件

相關問題