Замена автоиндексу в apache2


Anonymous - Posted on 10 Июль 2009

Для создания файлового архива потребовался "единый" index.php для кучи каталогов. Решение нашлось следущее (правда не совсем удачное :))

1. Отключаем модуль autoindex в апаче, удалив соответствующие файлы из /etc/apache2/mods-enabled
2. В /etc/apache2/apache2.conf добавляем строки:

ErrorDocument 404 /index.php
ErrorDocument 402 /index.php

3. Закидываем index.php в рутовский каталог.
4. Для обработки файлов в index.php добавляем код примерно такого содержания:

$url=$_SERVER['REQUEST_URI'];
 
if($url == "" || $url == "/" || ereg("/+/$",$url)) {$arr = glob("*");} else {$arr = glob($root.$url."*");}
// здесь:
// $root = DirectoryRoot (обычно это /var/www)
// можно заченить на opendir, readdir... мне показалось так удобнее
 
for ($i = 0; $i <= count($arr)-1; $i++) {
  $f = "$arr[$i]";
  $fu = str_replace("$root","",$f);
  $fn = str_replace("$root".$url,"",$f);
// здесь: 
// $f - системный путь к файлу
// $fu - ссылка на файл
// $fn - имя файла
 
 
  // ВАШ КОД
  // ссылка, например, будет выглядеть так:
  // $filesize = get_file_size("$f");
  // echo "<a href='$fu'> $fn ($filesize)</a>";
}
0
Ваша оценка: Ничего

Можно было index от nginx использовать

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.