代码之家  ›  专栏  ›  技术社区  ›  Bill the Lizard

如何从我的网址中删除“cgi-bin”?

  •  6
  • Bill the Lizard  · 技术社区  · 16 年前

    我正在嵌入式设备上创建一个小型应用程序,该设备具有 boa 我正在创建一个由纯HTML页面和Perl脚本混合而成的web应用程序,以与主应用程序交互。是否有方法隐藏某些页面从设备上的cgi bin中提供的事实?

    我现在有以下网址。

    我更喜欢的是:

    上面的URL将我带到相应的index.html或index.pl文档。是否有文件结构和服务器设置的某种组合可以启用此行为?

    我在谷歌上搜索过这个,但你可以想象,我得到的搜索结果中有一页又一页的网址是“cgi-bin”。我希望这里有人以前做过这个。

    编辑: 我应该提到的是,我知道如何通过在我的web根目录中创建单独的文件夹来为纯HTML页面做到这一点,所有文件夹都包含index.HTML页面。我的问题是如何让这种类型的解决方案与cgi-bin目录中的.pl或.cgi文件一起工作。

    2 回复  |  直到 16 年前
        1
  •  7
  •   Jay    16 年前

    遗憾的是,Boa似乎没有任何类型的mod_rewrite选项可供选择,因此您在重写URL方面的能力有限 boa docs 以下是您可用的选项:

    重定向、别名和ScriptAlias

    重定向、别名和ScriptAlias全部 具有相同的语义——它们匹配 请求和接受的开始 适当的行动。使用重定向 其他服务器,别名相同 服务器和ScriptAlias以启用 用于脚本执行的目录。

    重定向

    允许您告诉客户您的文档中曾经存在的文档 服务器的命名空间,但不是 不再。这允许您告诉 客户在哪里寻找 重新定位的文档。

    别名

    将一条路径别名为另一条路径。当然,文件中的符号链接 系统也运行良好。

    ScriptAlias

    将虚拟路径映射到用于提供脚本的目录。

    基于此,您可以尝试ScriptAlias或Alias,甚至是指向“更好”URL的符号链接。不幸的是,由于我在这里没有Boa,我无法测试这些选项来更具体地告诉您要尝试什么。

        2
  •  7
  •   Pridkett ideasman42    16 年前

    在apache中,使用mod_rewrite很简单,但boa有点不同。这里有几个不同的问题。对于.html文件,请确保在boa.conf中有以下行:

    目录索引/index.html

    然后,当点击根目录时,将检索任何名为index.html的文件。因此,如果你的根目录是/htdocs,那么makes/htdocs/index.html和/htdocs/info/index.html应该能解决这些问题。

    对于其他脚本,您需要添加以下行:

    AddType应用程序/x-httpd-cgi-pl

    这应该让perl像CGI一样在任何地方执行。然后,要确保boa知道它们是索引文件。您可以使用Redirect或Alias指令来克服其中的一些问题。

    推荐文章