WAMPスタック上のいくつかのサイトのページを編集し、LAMPスタックを実行しているパブリックサーバーにアップロードする開発者がいます。私たちはこれにかなり満足していますが、この小さな迷惑があります。開発環境と実稼働環境で同じ.htaccessファイルを使用することはできません。パブリックサイトでは、ソースフォルダーはhttp://foo.com
、http://bar.com
などにマップされます。開発者ワークステーションでは、ソースフォルダーはhttp://localhost/foo
、http://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
に書き換えられます。
これに対する私の解決策は、書き換えルールを台無しにすることではなく、偽の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でファイルを同期します。