Как мне удалить "cgi-bin" из моих URL? - PullRequest
6 голосов
/ 21 января 2009

Я создаю небольшое приложение на встроенном устройстве, на котором запущен веб-сервер boa . Я создаю веб-приложение в виде смеси простых HTML-страниц и сценариев Perl для взаимодействия с основным приложением. Есть ли способ скрыть тот факт, что некоторые страницы обслуживаются из cgi-bin на устройстве?

Теперь у меня есть следующие URL.

Я бы предпочел:

с указанными выше URL, которые ведут меня к соответствующему документу index.html или index.pl. Существует ли какая-либо комбинация структуры файла и настроек сервера, которая включит это поведение?

Я искал в Google это, но, как вы можете себе представить, я получаю страницы и страницы результатов поиска с "cgi-bin" в URL. Я надеюсь, что кто-то здесь делал это раньше.

РЕДАКТИРОВАТЬ: Я должен упомянуть, что я знаю, как это сделать для простых HTML-страниц, создавая отдельные папки в моем веб-корне, все со страницами index.html. Моя проблема заключается в том, чтобы заставить этот тип решения работать с файлами .pl или .cgi в каталоге cgi-bin.

Ответы [ 2 ]

7 голосов
/ 21 января 2009

Боа, к сожалению, не имеет каких-либо доступных параметров mod_rewrite, поэтому вы ограничены в том, что вы можете сделать, чтобы переписать URL. Из Боа документов вот варианты, которые у вас есть в наличии:

Перенаправление, псевдоним и ScriptAlias ​​

Перенаправление, псевдоним и ScriptAlias ​​все имеют одинаковую семантику - они совпадают начало запроса и принять соответствующее действие. Использовать Redirect для другие серверы, псевдоним для того же сервер и ScriptAlias ​​для включения каталоги для выполнения скрипта.

Перенаправление

позволяет вам рассказать клиентам о документах, которые раньше существовали в вашем пространство имен сервера, но не больше. Это позволяет вам сказать клиенты, где искать перемещенный документ.

Псевдоним

псевдоним одного пути к другому. Конечно, символические ссылки в файле система тоже работает нормально.

ScriptAlias ​​

отображает виртуальный путь в каталог для обслуживания сценариев.

Исходя из этого, вы можете попробовать ScriptAlias ​​или Alias, или даже символическую ссылку на «более приятный» URL. К сожалению, поскольку у меня нет Boa, доступного здесь, я не могу проверить варианты, чтобы сказать вам более конкретно, что попробовать.

7 голосов
/ 21 января 2009

В apache это было бы просто с mod_rewrite, но boa немного отличается. У вас здесь есть несколько разных проблем. Для файлов .html убедитесь, что в файле boa.conf есть следующая строка:

DirectoryIndex /index.html

Тогда любой файл, который называется index.html, будет получен при попадании в корень. Таким образом, если ваш корневой каталог - / htdocs, то такие проблемы должны решать makes /htdocs/index.html и /htdocs/info/index.html.

Для других ваших скриптов вам необходимо добавить следующую строку:

Приложение AddType / x-httpd-cgi pl

Это должно позволить perl исполняться, так как CGI выполняются везде. Тогда нужно убедиться, что Боа знает, что они являются индексными файлами. Возможно, вам удастся преодолеть некоторые из них, используя директивы Redirect или Alias.

...