我在服务器 [Linux 操作系统] 上运行了一个小的 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
和 /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.
文件也有权限。
可能是什么问题?
最佳答案
您的问题是您尝试请求 webroot 之外的文件。所以通过点击它,浏览器真的在请求
http://example.com/home/pathtopdf/abc.pdf
不是
/home/pathtopdf/abc.pdf
您可以编辑您的 apache 配置文件并将虚拟主机添加到子域下的该目录(比如下载)
关于html - 找不到 URL 错误,而它确实存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10810052/