2017-05-24 25 views
-2

這似乎有不同的行爲取決於驅動器瘋狂的瀏覽器。html表單路徑:如何修復相對的起點?

在我的服務器上,我有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" ... 

即,我必須附加「富/」。我不知道爲什麼,有沒有辦法解決這個問題?

非常感謝您的幫助!

+1

我不明白...你正在做'action =「act.php [...]」'on'/ foo'?但你在'/ index.html'嗎?無論哪種方式,請嘗試使用'action =「/ act.php [...]」'並參閱... – matiaslauriti

+0

這兩種情況都不起作用。我測試過了。 – user180574

+0

請重複一遍,請詳細解釋您所訪問的內容......您告訴我們您正在使用'index.html',但是您正通過'/ foo'而不是'/ index.html'訪問它? ?沒有意義...請解釋一下...... – matiaslauriti

回答

0

解決的辦法是改變

<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