web-dev-qa-db-ja.com

開発ワークステーションおよびサーバーのApache書き換えルール

WAMPスタック上のいくつかのサイトのページを編集し、LAMPスタックを実行しているパブリックサーバーにアップロードする開発者がいます。私たちはこれにかなり満足していますが、この小さな迷惑があります。開発環境と実稼働環境で同じ.htaccessファイルを使用することはできません。パブリックサイトでは、ソースフォルダーはhttp://foo.comhttp://bar.comなどにマップされます。開発者ワークステーションでは、ソースフォルダーはhttp://localhost/foohttp://localhost/barなどにマップされます。つまり、パブリックサーバーにはRewriteBase /が必要ですが、開発者ワークステーションの各サイトはRewriteBase /foo/RewriteBase /bar/などを使用します。

.htaccessファイルに対してRewriteBaseを指定する方法はありますか?書き換えルールの移植性を高める他のアイデアはありますか?

興味があれば、書き換えルールを使用してCakePHPのルーティングコードにリダイレクトするため、ルールは次のようになります。

RewriteRule ^(.*)$ cake_main.php?url=$1 [QSA,L]

開発者ワークステーションで/foo/のRewriteBaseを使用しない場合、/cake_main.phpではなく/foo/cake_main.phpに書き換えられます。

7
Don Kirkby

これに対する私の解決策は、書き換えルールを台無しにすることではなく、偽のTLDを持つ個別のローカルドメイン/ホストをPCに追加することです。

これを行うには、ファイルC:\Windows\System32\drivers\etc\hostsを編集します

Windows 7(およびおそらくVista)では、このファイルを正常に編集するには、テキストエディターを管理者として実行する必要があることに注意してください。

次のような行を使用してホストを追加できます。

127.0.0.2       www.mysite.local
127.0.0.3       www.myothersite.local

これらが適切に配置されたら、これらのドメイン名用にApacheを構成できます。

もちろん、これはローカルネットワーク内の他のマシンからの十分なテストには機能しませんが、その状況にある場合は、ローカルDNSサーバーを使用するか、ホストをローカルの非ポータブルIPアドレスに割り当て、すべてのPCでファイルを同期します。

4
JasonBirch