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

时间:2009-01-21 18:36:14

标签: web-applications url-rewriting cgi cgi-bin

我正在嵌入式设备上创建一个小应用程序,其上运行有boa个Web服务器。我正在创建一个混合使用纯HTML页面和Perl脚本的Web应用程序来与主应用程序进行交互。有没有办法隐藏某些页面是从设备上的cgi-bin提供的呢?

我现在拥有以下网址。

我更喜欢的是:

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

我已经在谷歌上搜索了这个,但是你可以想象我在URL中获得了带有“cgi-bin”的搜索结果的页面和页面。我希望以前有人这样做过。

编辑:我应该提一下,我知道如何通过在我的网络根目录中创建单独的文件夹来为普通HTML页面执行此操作,所有文件夹都使用index.html页面。我的问题是让这种类型的解决方案与cgi-bin目录中的.pl或.cgi文件一起使用。

2 个答案:

答案 0 :(得分:7)

在apache中,这对于mod_rewrite来说很简单,但是boa有点不同。你在这里遇到了几个不同的问题。对于.html文件,请确保boa.conf中包含以下行:

DirectoryIndex /index.html

然后在命中root时将检索任何名为index.html的文件。因此,如果您的根目录是/ htdocs,则makings /htdocs/index.html和/htdocs/info/index.html应该处理这些问题。

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

AddType application / x-httpd-cgi pl

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

答案 1 :(得分:7)

不幸的是,Boa似乎没有任何类型的mod_rewrite选项可供使用,因此您在重写URL方面的工作受到限制。从boa docs这里有您可以使用的选项:

重定向,别名和ScriptAlias

  

重定向,别名和ScriptAlias全部   具有相同的语义 - 它们匹配   请求的开始和采取   适当的行动。使用重定向   其他服务器,Alias也一样   服务器和要启用的ScriptAlias   脚本执行的目录。

     

<强>重定向

     

允许您告诉客户您以前存在的文档   服务器的命名空间,但不是   了。这让你告诉了   客户在哪里寻找   重新安置的文件。

     

<强>别名

     

将一条路径别名化为另一条路径。当然,文件中的符号链接   系统工作也很好。

     

<强>的ScriptAlias

     

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

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