Как удалить "cgi-bin" из моих URL-адресов?
Я создаю небольшое приложение на встроенном устройства, имеющего боа веб-сервер работает на нем. Я создаю веб-приложение в смеси простых HTML-страниц и скриптов Perl для взаимодействия с основным приложением. Есть ли способ скрыть тот факт, что некоторые страницы подаются из cgi-bin на устройстве?
теперь у меня есть следующее URL-адреса.
- http://localhost/home.HTML-код
- http://localhost/cgi-bin/config.pl
- http://localhost/cgi-bin/control.pl
- http://localhost/info.HTML-код
то, что я бы очень предпочел бы быть:
с вышеуказанными URL-адресами, ведущими меня к соответствующему индексу.html или index.pl документ. Есть ли какая-то комбинация файловой структуры и параметров сервера, которая позволит такое поведение?
Я искал Google для этого, но как вы можете себе представить, я получаю страницы и страницы результатов поиска с" cgi-bin " в URL-адресе. Надеюсь, кто-то уже делал это раньше.
EDIT: я должен упомянуть, что я знаю, как это сделать для простых HTML-страниц, сделав отдельные папки в моем веб-корне, все с индексом.HTML-страница. Моя проблема в том, чтобы заставить этот тип решения работать .pl or .файлы cgi в каталоге cgi-bin.
2 ответов
Boa, к сожалению, не имеет доступных ему опций mod_rewrite, поэтому вы ограничены в том, что вы можете сделать, чтобы переписать URL. От boa docs вот варианты, которые у вас есть в наличии:
редирект, alias и scriptalias, за
редирект, alias и scriptalias, за все имеют одинаковую семантику - они совпадают начало запроса и взятие соответствующее действие. Использовать Перенаправление для другие серверы, псевдоним для того же сервер, и scriptalias, за включение каталоги для выполнения скрипта.
редирект
позволяет рассказать клиентам о документах, которые существовали в пространство имен сервера, но не больше. Это позволяет вам сказать клиенты, где искать перемещенный документ.
псевдоним
псевдонимы один путь к другому. Конечно, символические ссылки в папка система тоже работает нормально.
scriptalias, за
сопоставляет виртуальный путь к каталогу для обслуживания скриптов.
на основе этого вы можете попробовать Скрипталии или псевдоним, или даже символическую ссылку на" более приятный " URL. К сожалению, поскольку у меня нет Boa, я не могу проверить варианты, чтобы сказать вам более конкретно, что попробовать.
в apache это было бы просто с mod_rewrite, но boa немного отличается. У тебя тут пара разных проблем. Для.html-файлы убедитесь, что у вас есть следующая строка в boa.conf:
DirectoryIndex / index.HTML-код
тогда любой файл, который называется index.html будет извлечен при нажатии на корень. Поэтому, если ваш корневой каталог /htdocs, то makings/htdocs / index.html и / htdocs / info / index.html должен позаботиться об этом проблемы.
для других скриптов вам нужно добавить следующую строку:
AddType применение/х-файл httpd-CGI в ЛП
Это должно позволить perl выполнять как CGIs выполнять везде. Тогда нужно убедиться, что боа знает, что это индексные файлы. Возможно, вы сможете преодолеть некоторые из них, используя директивы перенаправления или псевдонима.