我在.htaccess
文件中的以下行來選擇要使用的PHP版本:htaccess的if語句
AddType x-httpd-php53 .php
這種環境中生活的偉大工程,但並不適用於測試環境,並打破了現場。
有沒有一種方法,我可以把它放在if語句或通過一些網站或某事的服務器或網址的IP,使之僅僅生效環境中生活?
我在.htaccess
文件中的以下行來選擇要使用的PHP版本:htaccess的if語句
AddType x-httpd-php53 .php
這種環境中生活的偉大工程,但並不適用於測試環境,並打破了現場。
有沒有一種方法,我可以把它放在if語句或通過一些網站或某事的服務器或網址的IP,使之僅僅生效環境中生活?
隨着阿帕奇2.4,很容易與<If>
/<Else>
指令(上%{HTTP_HOST}
?)。
<If "%{HTTP_HOST} == 'foo'">
# configuration for foo
</If>
<Else>
# default configuration
</Else>
對於的Apache 2.2和更早,我想將參數添加到在兩種環境中的一個在Apache(-D
選項)的啓動命令行然後進行測試,如果它是存在或不存在通過<IfDefine>
。
要做到這一點在Windows上,使用Apache作爲服務啓動,通過附加-DFOO
修改註冊表鍵HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Apache2.<VERSION>\ImagePath
。然後,你可以寫:
<IfDefine FOO>
# configuration for foo
</IfDefine>
<IfDefine !FOO>
# default configuration
</IfDefine>
你可以做的另一種方法是修改httpd.conf文件在測試環境中使用「的.htaccess測試」而不是「的.htaccess」。
這簡直是通過修改httpd.conf文件,並添加以下行之外的任何模塊來完成:
AccessFileName .htaccess-test
注意:您可以將<虛擬主機>塊內部添加AccessFileName,如果你想將它應用到一個特定的VirtualHost。
這意味着測試環境將使用的.htaccess測試同時生產環境將使用的.htaccess。因此,您可以自由配置每個環境。
然後創建一個名爲.htaccess-test的文件,該文件與.htaccess相鄰。 用您的測試配置修改.htaccess-test,然後在測試環境服務器中重新啓動Apache Web服務器。
你的現場和測試環境有什麼區別?他們在Apache中如何配置?最重要的是,它是如何突破的? error_log中有什麼? –