为什么共享主机上的django Web应用程序的GET URL与POST URL的处理方式不同

时间:2014-11-14 21:33:11

标签: python django apache passenger

我在 A2hosting 上有一个django网络应用,我正在使用 .htaccess 文件和 passenger_wsgi.py 。我最后一次碰到它时效果很好,但后来看过它的人告诉我它坏了。

我创建了一个测试情境来找到问题,这是它的要点。

当我执行 GET (到www.geo4ce.com/quiz/test_weird/)时,它会转到一个页面,其中包含一个简单的表单,只有一个输入,一个提交和一个具有" /quiz/test_weird/"和method="post"。当我提交表单时,服务器需要"测验"要引用文件服务器上的路径的URL的一部分,无法找到它,然后记录它无法找到它的错误。但是,然后它会检查url的test_weird部分与我的django urls.py 文件,找到不同的视图并显示它。

几乎正常运行的方案是使用www.geo4ce.com/quiz/test_hacked/设置相同的设置,除了表单有action =" /anythinghere/quiz/test_hacked/"。在这种情况下,"任何地方"部分网址会记录错误,因为它不存在于文件服务器上,然后网址的/quiz/test_hacked/部分正常工作以返回到原始网页。

任何人都知道如何修复或调试它?

[编辑] 我不认为它是.htaccess文件的原因。它看起来像这样。

PassengerEnabled On
PassengerAppRoot /path/to/app/folder/

# Prevent Apache from serving .htaccess files:
<FilesMatch "^\.htaccess">
    Order allow,deny
    Deny from all
</FilesMatch>


deny from xxx.yyy.zzz

1 个答案:

答案 0 :(得分:0)

显然问题是由某个版本的Passenger(带有RoR)引起的。我被告知要切换到使用FCGI。