.htaccessはApacheでは無視されます。

.htaccessはApacheでは無視されます。

私の仮想ホストの1つの.htaccessファイルが私の本番サーバーで無視されるようです。このファイルは、同じサーバー上の他の仮想ホストに対して同じジョブ .htaccess ファイルです。さらに、仮想ホスト定義は、個々の仮想ホストに固有の行を除いて、他の作業仮想ホストと同じです。問題が発生すると、index.phpはデフォルトのURLを正しくロードしますが、すべての書き換えディレクティブは無視されます。また、.htaccessにゴミを入れてもエラーは発生しません。

サイトは私のバックアップサーバーで期待どおりに実行されます。 WebサイトとApache設定ファイルは毎時間ミラーリングされ(モードが有効になっている場合を除き)、データベースがサーバーにコピーされます。

バックアップおよび本番サーバーでどのモードが有効になっているかを比較したところ、mod_cgidが本番で有効になっていないことがわかりました。有効にすると問題は解決するようですが、一時的なものです。

.htaccessから書き換えを選択的に削除すると、成功しません。本番サーバーの再構築を検討しています。どのような追加のトラブルシューティングが推奨されますか?既知の修正がありますか?

ベストアンサー1

この問題は、私の本番サーバーのVirtualHost定義が正しく構成されていないために発生しました。 AllowOverride指定のディレクトリセクションにあるディレクトリパスのスペルが正しくありません。これがindex.phpがデフォルトのURLを正しくロードし、書き換えが無視される理由です。

mod-cgidを有効にしてサーバーを再起動すると、一時的に問題が解決したように見えますが、私は間違っているようです。トラブルシューティング中にDNS設定を調整し、時にはドメインをバックアップサーバーとして指定し、本番サーバーにリダイレクトすることを無視したことがあります。あるいは、ブラウザキャッシュの削除を無視した可能性があります。手順を元に戻すことができず、現在の本番環境で正常に動作していることを嬉しく思います。

おすすめ記事