私はmod_rewriteとApacheでこれを行う方法があると思っていますが、多分考慮する別の方法もあります。ファイルが見つからない場合にのみリダイレクト要求を送信しますか?
私のサイトでは、クライアント用のサイトの再スキン化バージョン用にディレクトリを設定しています。 Webルートが/home/blah/www
の場合、クライアントディレクトリは/home/blah/www/clients/abc
になります。 Webブラウザ経由でクライアントディレクトリにアクセスするとき、クライアントディレクトリに要求されたファイルがあればそれを使用したいと思う。それ以外の場合は、Webルートのファイルを使用します。
たとえば、クライアントに独自のindex.html
が必要ないとします。したがって、一部のコードではが/home/blah/www/clients/abc
に存在しないと判断され、その代わりに/home/blah/www
のものが使用されます。クライアントディレクトリが独自のコピーを指定していない場合は、いつでもWebルートのファイルをその名前で使用したいと思っています。ファイルが存在するかルートに存在するかにかかわらず、Webブラウザはまだ/clients/abc
を指しているはずです。同様に、クライアントディレクトリにnews.html
のリクエストがあり、にある場合はが存在します。ウェブルートのnews.html
の代わりにそのファイルを提供してください。ユーザーの経験はシームレスでなければなりません。
すべてのファイル名でリクエストを処理するには、これが必要です。たとえば、リダイレクトしたいファイルごとに新しい行を.htaccess
に追加する必要がある場合は、メンテナンスが必要なため、目的を破り、多数のファイルがあるとエラーが発生する可能性が高くなります。
例では、コードがクライアントディレクトリの.htaccessファイルまたはWebルートにあるかどうかを指定してください。 Webルートが優先されます。
私がしたいことをするには短すぎます。あなたは少し論理を説明できますか?ありがとう! – DivideByHero