【问题标题】:html form path: how to fix the relative starting point?html表单路径:如何固定相对起点?
【发布时间】:2017-10-25 09:06:46
【问题描述】:

这似乎有不同的行为,具体取决于疯狂的浏览器。

在我的服务器上,我将 nginx 转发到 apache docker 容器。

location /foo {
        proxy_pass http://172.17.0.2/;
}

在 apache 容器上,我有“/var/www/html/index.html”,它具有以下形式。

<form action="act.php?action=add_item" method="post" ...

我有相应的“/var/www/html/act.php”。

在某些浏览器上,当我访问“http://.../foo/”并且提交正确时,它可以完美运行。但在其他人身上,它不起作用,我必须像这样修改,

<form action="foo/act.php?action=add_item" method="post" ...

即,我必须附加“foo/”。不知道为什么,有办法解决吗?

非常感谢您的帮助!

【问题讨论】:

  • 我不明白......你在 /foo 上做 action="act.php[...]" ????但是你在/index.html ???无论哪种方式,请尝试使用action="/act.php[...]" 并查看...
  • 这在任何一种情况下都不起作用。我已经测试过了。
  • 我重复一遍,请准确解释您正在访问的内容...您告诉我们您正在使用index.html,但您通过访问/foo 而不是/index.html 来访问它? ??没有意义...请解释一下...
  • 如果你不明白 nginx 转发是如何工作的,那么你可能不应该制作 cmets。我的问题很清楚。
  • 它有效,非常感谢!现在可以在不同的浏览器上正确访问了。

标签: php html apache nginx


【解决方案1】:

解决办法是改变

<form action="act.php?action=add_item" method="post" ...

<form action="/foo/act.php?action=add_item" method="post" ...

这是因为该页面是通过/foo 访问的,所以如果您尝试查看/act.php,您将无法看到,因为您正在路由/代理/重写到/foo 才能看到它。所以正确的路径绝对是/foo/act.php

【讨论】:

    猜你喜欢
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多