В настоящее время я читаю «Полное руководство по Apache mod_rewrite», и на протяжении всей книги упоминаются другие модули Apache, которые являются лучшими альтернативами в данных сценариях.
Это заставило меня задуматься, что все установлено на моем сайте. У меня нет доступа к серверу по SSH, и у меня нет доступа ни к одному из файлов конфигурации (afaik).
Есть ли у меня способ определить, что установлено, или мне нужно напрямую спросить свой хост? Я полагаю, что некоторые команды можно запускать внутри PHP (т.е. с использованием обратных кавычек), но я не уверен, каковы их ограничения.
У вас есть доступ к .htaccess
? Я предполагаю, что это так, иначе у вас не будет контроля над веб-сервером и вы ничего не сможете с ним сделать, поэтому нет смысла знать, какие модули у вас есть.
Если да, вы можете добавить различные <IfModule>
директивы в .htaccess
файл, чтобы что-то сделать (например, запретить доступ к определенному файлу). Затем вы можете попытаться получить доступ к файлу. Если у вас есть доступ к файлу, значит, у вас нет модуля.
Есть внешний метод, но для этого потребуется знать, включен ли он и установлен ли вообще.
В phpinfo()
Функция может рассказать вам кое-что об Apache, но в основном это касается PHP. Если вы можете запускать команды через веб-сервер, запустите
httpd -t -D DUMP_MODULES
может сработать, но я бы не стал на это рассчитывать.
Кроме того, некоторые модули могут включать данные в ответы сервера, даже если они в настоящее время не используются. Видеть http://www.netcraft.com/whats для примера такого рода вещей. Мой сервер в настоящее время сообщает:
Apache / 2.2.14 (Unix) mod_ssl / 2.2.14 OpenSSL / 0.9.9-dev DAV / 2 PHP / 5.2.11 Phusion_Passenger / 2.2.9
что кажется точным, что напоминает мне, что мне нужно удалить часть PHP.
Это не программный ответ.
Спросите напрямую у администратора хоста, если можете.
Вы можете попробовать попросить администратора активировать модуль apache mod_info и настроить главный файл сервера httpd.conf (и указать на ограниченный URI для безопасности), чтобы вы могли легко получить полную информацию о конфигурации с помощью своего веб-браузера.
Вы можете попросить администратора хоста запустить команду httpd, предоставленную другим пользователем выше, и отправить вам результат.