PHP で MVC フレームワークをゼロから開発しています。主に学習体験のためですが、これは実際のプロジェクトで簡単に終了する可能性があります。このチュートリアルをベースとして実行し、そこから拡張しました。
リクエストは次のように行われます。
examplesite.com/controller/action/param1/param2/ など...
そして、これは私の .htaccess ファイルです:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA]
したがって、すべてのリクエストは index.php に送られ、そこから正しいコントローラーとアクションにルーティングされます。コントローラーまたはアクションが指定されていない場合、デフォルトの「インデックス」が両方に想定されます。
私のサイトのホームページであるはずの index アクションを備えた index コントローラーがあります。examplesite.com にアクセスするとアクセスできます (インデックス部分が想定されているため)。いくつかの画像、スタイルシートへのリンク、およびいくつかのスクリプトが含まれています。index.php からの相対パスでリンクされています。すべてのリクエストがindex.phpに送られ、すべてのコンテンツがphpを使用してこのページに含まれているだけなので、これで問題ないと思いました。これは、examplesite.com にアクセスすると機能します。すべての画像とスタイルが表示され、スクリプトが実行されます。ただし、examplesite.com/index にアクセスすると、サイトの正しい部分にルーティングされますが、すべてのリンクが機能しません。ブラウザーは、私が別のフォルダーにいると認識していますか?
サイト内のすべてのコンテンツに相対パスを使用できるようにしたいと考えています。それ以外の場合は、すべての場所で絶対パスを使用して確実に表示する必要があるためです。これは可能ですか?