【发布时间】:2014-05-08 21:11:51
【问题描述】:
我在 D7 中遇到了一些我以前从未见过的非常奇怪的行为。我已经将一个新站点从我的开发机器迁移到了测试机器,所以代码和数据库是相同的。在开发机器(Ubuntu 13.04、Apache、PHP 5.5.3)上,一切正常,但在测试盒上,即在 Raspbian 上运行 PHP 5.4.4 的 Raspberry Pi 上,我似乎在提交表单时遇到 404 错误。似乎发生的情况是,当您查看 HTTP 响应时,未处理表单并返回原始页面但带有 404 状态代码。
这会影响使用 POST 的所有内容,包括登录。我确实设法通过使用 Firefox 的 Web 开发人员工具将登录表单的“操作”属性更改为指向“/”来使其登录,但许多其他事情都不起作用,并且管理菜单偶尔会消失。
认为这可能是一个缓存问题,因此手动截断了所有缓存表,但这没有任何区别。似乎存在一个不存在的临时文件夹的问题,所以我创建了它所期望的具有 777 权限的文件夹(因为我无法更改设置,因为表单提交不起作用......)但不是这个任何一个。干净的 URL 工作正常。
以前从未见过这样的事情。任何想法都非常感谢!
【问题讨论】:
-
听起来像是 Drupal 中
clean urls的问题(只是猜测)。您确定您的新服务器支持干净的网址吗?你可以在admin/config/search/clean-urls查看。您可能想使用?q=admin/config/search/clean-urls,它不能直接访问。如果服务器通过了干净的 URL 测试,则检查您是否正确复制了.htaccess文件。 -
感谢 Ajit,但事实并非如此,干净的 URL 已启用并且工作正常。我刚刚尝试在另一台服务器上运行它,并且遇到了同样的问题,但在我的开发盒上一切正常。我已经在这两个地方校验了 .htaccess 并且它们是相同的。我认为它必须是一个配置问题,指的是开发框,但还没有找到它......
-
Ajit - 我收回了,我忘了启用 mod_rewrite 和 mod_headers!令我惊讶的是,没有它们,干净的 URL 完全可以工作。我认为这是因为 .htaccess 将 404 指向 Drupal,然后它将解释请求的 URL 并显示适当的页面,但当然 Apache 正在发送 404 标头。感谢您为我指明正确的方向。
-
没问题。很高兴您找到了解决方案。
-
谁提供了解决方案,请将其添加为答案并将其标记为已接受并已解决。谢谢