0

Apache2.2.22とPHP5.3.10を使用してPHPプロジェクトに取り組んでいますが、indexとindex.phpが同じファイルとして扱われるという問題が発生しています。

admin /indexにリダイレクトするadmin/index.phpがあり、.htaccessのmod_rewriteルールがリクエストを引き継いでカスタムフレームワークに再ルーティングできるようにしています。問題は、ブラウザがadmin / indexに移動すると、リクエストがadmin / index.phpに送信され、admin / indexにリダイレクトされるため、無限のリダイレクトループに入るということです。

htaccessファイルを削除して、mod_rewriteルールに問題があり、それが原因で何も変更されていないかどうかを確認しました。admin/indexに際限なくリダイレ​​クトするだけです。

私はこれまでこの振る舞いについて聞いたことがありませんでした。いくつかのGoogleの結果をざっと見て、apache構成ファイルをざっと見ただけでは、本当に明白なことは何も示されませんでした。誰かがこれを以前に見て、それを修正する方法を知っていますか?

編集:以下は、index.phpがインデックスにリダイレクトするために使用しているコードです。

<?php
    header("Location: index");
    die();
4

2 に答える 2

1

これは、MultiViewが有効になっていることが原因である可能性があります。

MultiViewsの効果は次のとおりです。サーバーが/some/ dir / fooの要求を受信した場合、/ some / dirでMultiViewsが有効になっていて、/ some / dir / fooが存在しない場合、サーバーはディレクトリを読み取り、検索します。 foo。*という名前のファイルを作成し、それらすべてのファイルに名前を付けるタイプマップを効果的に偽造して、クライアントがファイルの1つを名前で要求した場合と同じメディアタイプとコンテンツエンコーディングを割り当てます。次に、クライアントの要件に最適なものを選択します。

https://httpd.apache.org/docs/2.2/content-negotiation.html#multiviews

あなたに追加Options -MultiViewsしてみてください.htaccess

于 2013-01-07T07:42:25.453 に答える
0

Apache 内でログの書き換えを有効にし、ログ レベルを上げます。そうすれば、Apache は、どのリクエストがどのように、どの順序で、なぜ書き換えられたのかを段階的に正確に教えてくれます。

于 2012-06-26T22:11:29.653 に答える