私は現在、単純な MVC フレームワークを構築していますが、ローカルホストで URL を分割するだけでなく、実際の運用サーバーでも機能させるという点で、少し障害が発生しています。
基本的に、私のローカルホストの URL は次のとおりです。
localhost/project/public/controller/action
ライブバージョンは次のようになります。
www.example.com/controller/action
私の最初の考えは、ライブサーバーでは完全に機能する $_SERVER['REQUEST_URI'] を使用することでしたが、ローカルホストでは次のように返されます。
/project/public/controller/action
私が必要とするのは:
controller/action
私は周りを検索しましたが、見つけた唯一の答えは、私が本当にやりたくない仮想ホストをセットアップすることでした-このコードは、セットアップ方法を知らない人も知らない人も共有するので、できれば避けたい。
編集:記録のために-これは私が見つけた答えです-ローカルホストとライブサーバーの両方で同じ $_SERVER['REQUEST_URI'] を取得する方法
このフォルダー構造は常に同じではないため、 /project/public/ も削除できません。
したがって、基本的に public/ の部分までのパスを取得する必要がありますが、 public フォルダーが別の名前になっている可能性があるため、それを使用することさえできません。
Laravelなどのフレームワークがそれを行うので、これが可能でなければならないことは知っていますが、そのソースを見ても、よくわかりません。
助けてくれてありがとう。
編集:可能な答え
何かを投稿するとすぐに脳波が発生する頻度は奇妙です...
エントリーポイントでbasename( DIR ) を実行するだけで、それが何であるかに関係なくフォルダーの名前が得られると考えていました。次に、それを使用して、そのフォルダーの最初のインスタンスの前 (含む) のすべてを削除できます。
これを試してみますが、もっと洗練された解決策があれば、まだ聞きたいです。