質問: Windows 10でXAMPPを使用し、PHPのサイトを作っています。 「htdocs」フォルダ直下に「test」フォルダを作り、その中に「firstPage.php」と「secondPage.php」を作りました。 今はローカル環境のXAMPPで動かしていますが、いつかはサーバーなどに上げたいと思い(セキュリティーの話は一旦置いておいてください)、リンク先のパスを絶対パスで指定しようとしました。 ところが、firstPageはちゃんと表示されたのですが、そこからsecondPageに絶対パスを用いて移動することができません。 相対パスを用いれば移動することはできます。 firstPageのソースコードは次の通りです。 ``` // これは移動できない secondPage' ?> // これは移動できる secondPage' ?> ``` ブラウザでソースを表示するとリンク部分は ``` secondPage secondPage ``` と表示されていますが、正直この違いがどう影響しているのかが分かりません。 なんとなく、Apacheが上手く動いてくれていない気はするのですが・・・ 追記 ブラウザ上ではリンク部分は両方とも同じように青くなっているのですが、__DIR__を使った方はクリックしても無反応です。 ``` secondPage' ?> ``` の「/secondPage.php」を「\secondPage.php」にしても、変化はありませんでした。 また、includeやrequire_onceでは、__DIR__を使っても読み込めます。 今のところ、リンクの場合に問題となるようです。
回答: PHPがApacheのDocument Rootを認識しているわけではありません。__DIR__は、ApacheのDocument Rootをrootとしたパスで表されたディレクトリではなく、お使いのコンピュータのrootディレクトリをrootとし絶対パスで表されたディレクトリです。