http://localhost/index.php/articles/edit/1/my-first-article のような URL は、.htaccess なしでどのように機能するのでしょうか?
質問
これはわかりません:
http://localhost/index.php/articles/edit/1/my-first-article
この URL は、 Kohana フレームワークのドキュメント. 。インストールファイルを調べてみましたが、私自身のファイル以外には、それとは関係のない .htaccess はありませんでした。
では、index.php が呼び出されても、パラメータとして URL に追加されたディレクトリのように見えるのはなぜでしょうか?それは「本物」とは思えません。
それとも、これはネイティブの PHP/Apache/HTTP が実際にどのように動作するのでしょうか?私の理解では、/ は常に「おい、ディレクトリだ!」と伝えています。本当に意味不明です...どうしてそれが可能ですか?それとも、私が見られない/見つけられない .htaccess がどこかにあるのでしょうか?
解決
これは、あなたには自明かもしれないが、それはすぐにではなかったファイル名を使用しない限り、私に、これはインデックスページで正しく動作しません。例えば、http://example.com/test/my/get/params
はhttp://example.com/test/index.php/my/get/params
ますが、動作しません。
他のヒント
から Apache ドキュメント:
AcceptPathInfo ディレクティブ
このディレクティブは、 末尾を含む要求 パス名情報に続く 実際のファイル名 (または存在しないファイル) )は、 承認または拒否。末尾の パス名情報の作成が可能 PATH_INFO内のスクリプトで使用可能 環境変数を使用します。
たとえば、場所 /テスト /ポイントを想定して、ここに単一のファイルのみを含むディレクトリをhtmlにします。次に、/test/here.html/more and /test/nothere.html/moreの両方をリクエストします。両方ともpath_infoとして収集します。
したがって、この設定は httpd.conf などのどこかで有効になっていると思います。これは、mod_rewrite と同様に、さまざまな場所で有効化/構成できることに注意してください。 ここを参照してください.
でAcceptPathInfo には、サーバー用にオンになっています。 :)
私は私の方法は、任意の使用されるであろう場合、私は知りませんが、サーバーが.htaccessファイルをサポートする(またはルールを書き換え)していない場合、Kohanaのを使用していないよ、私の「フレームワーク」は、このようにURIのを生成します。
http://www.domain.com/? /記事/編集/ 1 /私の-最初の記事の(気づく?)
それはちょうど(Windowsサーバ上または$_SERVER['REQUEST_URI']
)$_SERVER['HTTP-X-REWRITE-URL']
を解析し、カエルのフレームワークで使用される同様の方法だと、「/」で爆発します。
この方法では完全に独立して書き換えると、まだ生成され、多かれ少なかれSEOフレンドリーURIの
それはあなたのためになるのだと思います。
おそらくここではない場合、確かに正しい答えをお勧めします、そしておそらくないではない...
しかし...
私は人々が要求を解析するために404ページを使用して、その情報に基づいて、右ページなどが見てきました。
CGI環境変数PATH_INFOではを参照してください。