私はサーバーをあるボックスから別のボックスに転送し、今夜大規模なコード更新を行うように取り組んでいます。これを行うには、通常のサイト訪問者が保留ページに移動するようにリダイレクトを設定したいと思います。しかし、開発者とテスター、そしてクライアントはメインサイトに行きます。
私は403リダイレクトがそれを行う方法だと思っています。これは私が使用しているコードです:
Order allow,deny
deny from 80.195.185.214
allow from all
ErrorDocument 403 /holding/index.html
<Files /holding/index.html>
allow from all
</Files>
現在、私は自分のIPをリダイレクトしているだけです。今夜、それを交換します。
とにかく、保留ページで「このWebページにリダイレクトループがあります」という問題が発生します。明らかに、「AllowFromAll」ディレクティブは処理されていません。
誰かが私が間違っているかもしれないことを知っていますか?
HTTP応答コード403は「禁止」です。リダイレクトではありません。
「このWebページにはリダイレクトループがあります」というエラーメッセージは、どこかでリダイレクトが発生しているisであることを示しています(これは、301や302などの3xx応答を意味します)。 .htaccessファイルがあるか、Apache構成の他の部分がリダイレクトを応答として送信している可能性があります。
curl -I
またはwget -q -S -O /dev/null
を使用してページをリクエストして、送信されている応答を正確に確認してください。
注文の許可、拒否->注文の拒否、許可
http://httpd.Apache.org/docs/2.2/mod/mod_authz_Host.html#order
Allow、Deny最初に、すべてのAllowディレクティブが評価されます。少なくとも1つが一致する必要があります。一致しない場合、要求は拒否されます。次に、すべてのDenyディレクティブが評価されます。一致するものがある場合、リクエストは拒否されます。最後に、AllowまたはDenyディレクティブに一致しない要求は、デフォルトで拒否されます。
Deny、Allow最初に、すべてのDenyディレクティブが評価されます。一致するものがある場合、Allowディレクティブにも一致しない限り、要求は拒否されます。 AllowまたはDenyディレクティブに一致しないリクエストはすべて許可されます。
わかりました-他の人のために私自身の質問に答えています。まず、両方の回答者が問題を追跡するためにこれを手伝いました。
問題は、VirtualHostsを使用すると、.htaccessのFilesディレクティブが無視され、場所とディレクトリが機能しないことです。
回避策は非常に簡単です。開こうとしているサブフォルダーに別の.htaccessを作成します。