Замените mod_autoindex индексатором PHP во всех каталогах, не добавляя index.php во все из них.

Мне нравится возможность автоматически индексировать папку, чтобы я мог обслуживать большое количество файлов без постоянного добавления ссылок на страницу. Однако мне не нравится окно входа httpAuth, которое поставляется с использованием .htaccess для защиты каталога. Кроме того, в моих индексах есть больше функций, которые я хотел. Поэтому я написал PHP-скрипт для генерации индексов так, как я хочу, чтобы я мог контролировать все с помощью PHP, хранить пользователей в SQL, добавлять дополнительные ссылки в мой файловый редактор и входить в систему с помощью красивой веб-формы.

Проблема в том, что любой новый каталог нуждается в файле index.php, который включает скрипт, или я просто получаю индексы apache. Это означает копирование однострочного файла index.php в каждый каталог. Я мог бы сгенерировать его с помощью PHP, но если я работаю с FTP для управления файлами, это не решит всех проблем. Есть ли способ настроить apache для отображения моего индексного скрипта в любом каталоге, в котором нет собственных индексных файлов? Так что он действует точно так же, как mod_autoindex? Но с моим пользовательским скриптом.


person zeel    schedule 30.03.2012    source источник


Ответы (1)


Поместите index.php в свой корень, затем используйте перенаправление

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -d #if directory exists
RewriteRule . /index.php [L]

Затем внутри index.php используйте $_SERVER['REQUEST_URI'], чтобы выяснить, какая папка была запрошена, затем используйте PHP, чтобы отобразить то, что вы хотите отобразить, например. используя opendir, readdir и т.д. (не забудьте обработать unix-файлы '.' и '..')

person scibuff    schedule 30.03.2012