【问题标题】:How to fix the relative paths in action attribute in form tag (html)如何修复表单标签(html)中动作属性中的相对路径
【发布时间】:2020-01-10 14:51:40
【问题描述】:

folder tree 这对我有用(来自 index.html,在浏览器(apache2)中输入 akaleaf.com)

<form action="love512.png" method="GET">

但这不是(即使我在每个文件夹中都有 love512.png)

<form action="../cgi-bin/love512.png" method="GET">
<form action="cgi-bin/love512.png" method="GET">
<form action="/cgi-bin/love512.png" method="GET">
<form action="/var/www/akaleaf.com/cgi-bin/love512.png" method="GET">

按下这 4 个 index.html 版本的按钮后,我出现“未找到。在此服务器上未找到请求的 URL。”在第一个正确打开 love512.png 图像。

每个文件夹和文件(以 'www' 文件夹开头)都有 777 访问权限并 chown 到 akaleaf(me) 组

【问题讨论】:

  • Web 服务器通常无法访问 docroot 文件夹之外的任何内容,在这种情况下似乎是 public_html(尽管我需要查看 httpd.conf 的内容才能知道肯定)。这就是为什么唯一有效的是第一个。
  • @kmoser 感谢您的回复。我没有httpd.conf 文件,但我有akaleaf.com.conf 文件(etc/apache2/sites-available),其中包含以下内容:&lt;VirtualHost *:80&gt; ServerAdmin admin@akaleaf.com ServerName akaleaf.com ServerAlias www.akaleaf.com DocumentRoot /var/www/akaleaf.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined &lt;/VirtualHost&gt;

标签: html forms apache


【解决方案1】:

Web 服务器配置文件导致服务器只能访问 /var/www/akaleaf.com/public_html 文件夹,这就是您无法访问其他文件夹中的 love512.png 的原因,即使提供相对路径也是如此。

【讨论】:

  • 好的,我将DocumentRoot /var/www/akaleaf.com/public_html 改为DocumentRoot /var/www/akaleaf.com。但是&lt;form action="../cgi-bin/love512.png" method="GET"&gt; 不起作用。此外,当我尝试在浏览器中打开 cgi-bin 文件夹时,它说我“禁止”。 yadi.sk/i/GqFiVifF3BluKQ
  • 你重启了 Apache 吗?另外,您的index.html 文件在哪个文件夹中?如果在akleaf.com folder,你的表单动作是错误的;应该是&lt;form action="cgi-bin/love512.png" method="get"&gt;
  • index.html 文件位于 public_html 文件夹中。即使我将index.html 移动到akaleaf.com 文件夹并更改为&lt;form action="cgi-bin/love512.png"&gt; 它也不起作用
  • [已解决] 解决方案是:在 /etc/apache2/apache.conf 文件中的某个位置添加 &lt;IfModule alias_module&gt; ScriptAlias /cgi-bin "/var/www/akaleaf.com/cgi-bin/" &lt;/IfModule&gt;(无论我怎么想)。文件akaleaf.com.conf 包含:yadi.sk/i/vQdcAhtN3S4KGQ。现在 love512.png 不能通过 cgi-bin/love512.png 工作,但是脚本 cgi-bin/story.pl 工作,这样更好。
【解决方案2】:

解决办法是:添加

<IfModule alias_module> 
  ScriptAlias /cgi-bin "/var/www/akaleaf.com/cgi-bin/" 
</IfModule>

在某个地方的/etc/apache2/apache.conf 文件中(无论我怎么想)(不要忘记将/var/www/akaleaf.com 替换为站点根文件夹的路径)。 文件akaleaf.com.conf 包含:yadi.sk/i/vQdcAhtN3S4KGQ。 现在 love512.png 不工作 by cgi-bin/love512.png(但它可以在其他文件夹中工作,例如 public_html),但是脚本 cgi-bin/story.pl 工作,更好.

【讨论】:

    猜你喜欢
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 2017-10-25
    • 2014-07-24
    相关资源
    最近更新 更多