0

私は奇妙な問題だと思うものを抱えています。同じホスティング プラットフォームで複数のサイトを開発しています。それらの1つを除いて、すべてのサイトは問題ないようです。Web サイトは、path_info に基づいてデータベースから表示する正しいデータを取得する 1 ページ (index.php) の周りに設定されています。動作を停止したということは、以下のページで 404 エラーが発生したということです。使用するスクリプトとして index.php が表示されるはずだという印象を受けました。

これは、ホスト側でアクセスできない htconfig または別のファイルの問題だと思います。おそらく、誰かが私が彼らをどこに向けるかを明らかにすることができます. 私自身の htaccess ファイルは完全に空です:

wwww.testsite.com/index.php/page1

上記は index.php に移動し、$_SERVER path_info を使用して page1 を取得し、データベースから page1 に関連付けられたコンテンツを取得してページに表示していました。誰かが私が怒っていないことを確認できますか-上記はindex.phpに行くべきですか? また、URL が index.php ではなく page1 に移動しているように見えるため、URL が存在しないと見なされる理由も説明します。アドバイスをよろしくお願いします。

4

2 に答える 2

1

誰かが私が怒っていないことを確認できますか?上記の [wwww.testsite.com/index.php/page1] は index.php に移動する必要がありますか?

いいえ。のドキュメントルートpage1のディレクトリで呼び出されたファイルを探す必要があります。index.phpwww.testsite.com

次のような .htaccess ファイルがあったと思います。

RewriteEngine on
RewriteRule ^index.php(.*)$ index.php

もう 1 つの可能性は、MultiViewsが以前は有効でしたが、現在は無効になっていることです。MultiViews を使用すると、説明した動作も得られます。ホスティング事業者が許可している場合は、以下を含む .htaccess ファイルを作成するだけで有効にできます。

Options MultiViews

上記のソリューションのいずれかを含む .htaccess ファイルをドキュメント ルートに配置すると、これを確認できます。

于 2011-11-02T12:54:07.007 に答える
0

Apache では、Apache 構成 (サーバー構成で許可されている場合はAcceptPathInfo onを含む) に関連する場所があり、ファイルがある場合は、実際に に移動し、 に設定する必要があります。CGI スクリプト ハンドラーと mod_php* はデフォルトでこれを行うので、明示的にオフにしない限り機能するはずです。.htaccess/index.php/index.php/stuff/index.php$_SERVER['PATH_INFO']"/stuff"

AcceptPathInfo onいずれにせよ、現在オフになっている場合は、.htaccess ファイルに追加することでオンに戻すことができます (AllowOverride FileInfoサイトに が設定されている場合)。

他の Web サーバーについては約束しませんPATH_INFOが、CGI 仕様の一部であるため、ほとんどのサーバーは同様の設定になっていると思います。

于 2011-12-21T14:45:20.777 に答える