2014-05-08 115 views
3

我在D7中有一些非常奇怪的行为,我从未见过。我已经从我的开发机器上将一个新站点迁移到测试机器,所以代码和数据库是相同的。在开发机器上(Ubuntu 13.04,Apache,PHP 5.5.3),一切正常,但在Raspbian上运行PHP 5.4.4的Raspberry Pi测试框中,我似乎在表单提交时得到了404错误。看起来会发生的是,当您查看HTTP响应时,未处理表单并返回原始页面,但带有404状态码。非常奇怪的Drupal 7 404行为

这会影响使用POST的所有内容,包括登录。我确实设法通过将登录表单的'action'属性更改为使用Firefox的Web开发人员工具指向'/'来登录,但许多其他事情都无法正常工作,管理菜单偶尔也会消失。

认为它可能是一个缓存问题,所以手动截断所有的缓存表,但没有什么区别。似乎有一个问题与一个不存在的临时文件夹,所以我创建了一个期待与777烫发(因为我不能改变设置,因为表单提交不会工作...),但它不是这个无论是。干净的URL工作正常。

以前从未见过这样的事情。任何想法最赞赏!

+1

听起来像在Drupal中的“干净的URL”问题(只是猜测)。你确定你的新服务器支持干净的URL吗?你可以在'admin/config/search/clean-urls'查看它。你可能想使用'?q = admin/config/search/clean-urls',它不能直接访问。如果服务器通过干净的URL测试,然后检查是否已经正确复制'.htaccess'文件。 –

+0

感谢Ajit,但不是这样,干净的URL被启用并且正常工作。我刚刚尝试在不同的服务器上运行它,并且遇到了同样的问题,但在我的开发盒上都很好。我在两个地方都检查了.htaccess,它们是相同的。我认为它*必须*是一个配置问题,指的是开发盒,但还没有找到它... –

+1

Ajit - 我收回它,我忘了启用mod_rewrite和mod_headers!我感到惊讶的是,没有它们的干净网址都可以工作。我认为这是因为.htaccess将404指向Drupal,然后Drupal将解释请求的URL并显示相应的页面,但是Apache当然会发送404头。感谢您指点我正确的方向。 –

回答

0

这里是什么似乎是回答这个问题(从评论从歌剧院的问题采取如下):

我忘了,使mod_rewrite的mod_headers中和!我感到惊讶的是,没有它们的干净网址都可以工作。我认为这是因为.htaccess将404指向Drupal,然后Drupal将解释请求的URL并显示相应的页面,但是Apache当然会发送404头。