0

我在服务器[Linux OS] 上运行了小型 CGI 脚本。以下是脚本输出的一部分..

<tr><td valign="center">Lol</td><td valign="center">10112</td><td><a 
href="/home/pathtopdf/abc.pdf">abc.pdf</a></td></tr>

但是当我点击这个 abc.pdf 超链接时,浏览器会显示错误消息:URL /home/pathtopdf/abc.pdf was not found on the server.虽然 pdf 和路径肯定存在并且路径中的所有文件和文件夹[包括 pdf] 都具有完全权限。

我的服务器位置是 @/srv/www和 script in /srv/www/cgi-bin,但是当我将链接放在 pdf 中时,如下所示

<tr><td valign="center">Lol</td><td valign="center">10112</td><td><a 
href="/srv/www/for_html/abc.pdf">abc.pdf</a></td></tr>

错误消息是The requested URL '/srv/www/for_html/abc.pdf' resolves to a file which is marked executable but is not a CGI file; retrieving it is forbidden.再次获得文件权限。

可能是什么问题?

4

2 回答 2

3

您的问题是您尝试在 webroot 之外请求文件。所以通过点击它,浏览器真的在请求

http://example.com/home/pathtopdf/abc.pdf

不是

/home/pathtopdf/abc.pdf

您可以编辑您的 apache 配置文件并将虚拟主机添加到子域下的该目录(例如下载)

于 2012-05-30T04:43:10.653 回答
0

编辑后,我假设您file://直接在服务器上使用该协议。我想说只是从您.pdf的文件权限中删除可执行位。从外壳运行:

chmod -x /srv/www/for_html/abc.pdf
于 2012-05-30T04:46:22.930 回答