2012-12-21 10 views
9

は、私が使用するPHPのバージョンを選択するために私.htaccessファイルに次の行がある場合:htaccessの声明

AddType x-httpd-php53 .php 

これはライブ環境での素晴らしい作品が、テスト環境には適用されませんし、休憩をサイト。

ようにウェブサイトか何かのサーバーまたはURLのIPによって文または何かが、それは唯一のライブ環境で有効になる場合、私はそれを置くことができる方法はありますか? のApache 2.4

+0

ライブ環境とテスト環境の違いは何ですか? Apacheでどのように設定されていますか?そして最も重要なことは、どうやってそれが壊れているのか? error_logには何が入っていますか? –

答えて

16

、それは<If>/<Else>ディレクティブ(%{HTTP_HOST}上?)と簡単です。 については

<If "%{HTTP_HOST} == 'foo'"> 
    # configuration for foo 
</If> 
<Else> 
    # default configuration 
</Else> 

はApache 2.2およびそれ以前、私はそれが<IfDefine>経由存在であるかどうか、テスト2つの環境のいずれかでのApacheの起動コマンドライン(-Dオプション)にパラメータを追加します。 Apacheで、Windows上でこれを行うには

-DFOOを追加することにより、キーのレジストリHKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Apache2.<VERSION>\ImagePath
を変更し、サービスとして開始しました。次に、あなたが書くことができます。

<IfDefine FOO> 
    # configuration for foo 
</IfDefine> 
<IfDefine !FOO> 
    # default configuration 
</IfDefine> 
2

を行うことができます別の方法としては、代わりに「の.htaccess」の「の.htaccessテスト」を使用してテスト環境でのhttpd.confを変更することです。

これは単にhttpd.confのを変更し、任意のブロックの外に次の行を追加することによって行われる。

AccessFileName .htaccess-test 

注:あなたはそれを適用する場合は、<のVirtualHost >ブロック内AccessFileNameではを追加することができます特定のVirtualHost。これが何を意味するのか

は、本番環境での.htaccessを使用する一方、テスト環境は、.htaccessのテストを使用することです。したがって、各環境を個別に設定する自由が得られます。

は、その後の.htaccessに.htaccessのテストが隣接という名前のファイルを作成します。 テスト構成で.htaccess-testを変更し、最後にテスト環境サーバーでApache Webサーバーを再起動します。