如何使用PHP获取服务器的默认页面(例如index.php)?

时间:2012-06-02 20:12:45

标签: php web

不确定这是否可行。我想找出服务器的默认页面值是什么,所以如果它被设置为“index.htm”或“index.php”,那么返回它。这是我正在开发的网络应用程序;用户提供了他们的FTP详细信息和网站URL(这可以自动计算吗?),但我需要自动确定他们的默认页面是什么。

我想到可能会检查FTP目录中的文件与URL返回的页面是否匹配,但看起来有点过分。

提前致谢,如果我没有提供足够的信息,请告诉我。

3 个答案:

答案 0 :(得分:2)

如果php专门作为apache模块运行,那么php脚本可以执行子请求,让apache为你解决它。

http://www.php.net/manual/en/function.apache-lookup-uri.php

虽然是常见的组合,但它只是众多webserver + php配置组合中的一种。

print_r(apache_lookup_uri('/'));

答案 1 :(得分:1)

我不相信这是可能的。

因为(as specified here)人们可以设置自己的自定义默认索引。您当然可以查找默认值。*和index。*(我相信默认覆盖索引),但这不会捕获边缘情况(如自定义目录索引)。

答案 2 :(得分:0)

这将为您提供域名以及所有index。*和default。*文件的数组,文件类型为值,文件路径为键。

<?php
$domain_name = $_SERVER['HTTP_HOST'];
echo $domain_name.'<br/>';

$files = glob($_SERVER['DOCUMENT_ROOT'].'/index.*');
$files = array_merge($files, glob($_SERVER['DOCUMENT_ROOT'].'/default.*'));
$indexes = array();
foreach($files as $index) 
{
    $index_info = pathinfo($index);
    $indexes[$index_info['dirname'].'/'.$index_info['basename']] = $index_info['extension'];
}

echo $_SERVER['DOCUMENT_ROOT'].'</br>';
echo '<pre>'; print_r($indexes); echo '</pre>';
?>