-1

次のパスに index.php ファイルがあります: http://www.example.com/inc/index.php

http://www.example.com/inc/のような inc ディレクトリまでのパスを取得する必要があります。

これは私がindex.phpに書いた行です

'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['PHP_SELF']) . '/'

Apacheサーバーで動作しています。私のクライアント システムでは動作しません。彼は自分が使用しているサーバーについて確信が持てませんが、apache 以外のことを話しました。

どんな入力でも大歓迎です。前もって感謝します

4

3 に答える 3

1

これは、

http://www.example.com/inc/

 <?php

     echo "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']) . '/';

 ?>

実際、何が機能していないのでしょうか。http://www.example.com/inc/によってロードされたインデックス ページを取得できない場合 は、サーバーで index.php がデフォルトとして設定されていません。IISサーバーの場合、デフォルトのページはindex.html、default.html、default.aspです-index.phpではなく、これを確認してください

さらに読むために、

http://www.htmlgoodies.com/beyond/webmaster/article.php/3473251/Index-or-Default.htm

于 2012-10-06T10:54:33.417 に答える
0

$_SERVER['PATH_TRANSLATED'] を試しましたか? Apache 2 では、これは明示的に設定されていないことに注意してください (構成設定が必要です)。ここを参照してください: PHP $_SERVER マニュアル.

これはあなたの助けになるように思えますが、私のホスティング スペースにある httpd.conf ファイルにアクセスして確認することはできません。

お役に立てれば!

コブス

于 2012-10-06T10:53:50.063 に答える
0

dirname 関数はファイル システムを見ています。URL を解析してディレクトリにアクセスしようとしている場合は、次のようなものを使用することをお勧めします。

$pathComponents = explode('/', $_SERVER['PHP_SELF']);
array_pop($pathComponents);
$dirName = implode('/', $pathComponents) . '/';

これは「inc/」を返すはずです

于 2012-10-06T10:46:05.563 に答える