У меня очень странное поведение в D7, которого я раньше не видел. Я перенесла новый сайт с моей машины dev на тестовую машину, поэтому код и БД идентичны. На dev-машине (Ubuntu 13.04, Apache, PHP 5.5.3) все работает нормально, но на тестовом поле, которое является малиновым Pi, работающим на PHP 5.4.4 на Raspbian, я, кажется, получаю 404 ошибки при отправке формы. Кажется, что форма не обрабатывается, и исходная страница возвращается, но с кодом статуса 404, когда вы смотрите на ответ HTTP.
Это влияет на все, что использует POST, включая логин. Мне удалось заставить его войти в систему, изменив атрибут «действие» формы входа, чтобы указать на «/» с помощью инструментов веб-разработчика Firefox, но многие другие вещи не работали, и меню администратора иногда исчезало.
Думал, что это может быть проблема кэширования, поэтому вручную усечены все таблицы кэша, но это не имеет никакого значения. По-видимому, возникла проблема с несуществующей временной папкой, поэтому я создал ту, которую она ожидала с 777 perms (поскольку я не мог изменить настройку, потому что подача формы не работала …), но это не было или. Чистые URL-адреса работают нормально.
Никогда раньше ничего подобного не видел. Любые идеи наиболее ценятся!
Вот что кажется ответом на этот вопрос (взятый из комментария OPER под вопросом):
Я забыл включить mod_rewrite и mod_headers! Меня поразило то, что чистые URL-адреса работали без них. Я думаю, это связано с тем, что .htaccess указывает 404 на Drupal, который затем интерпретирует запрошенный URL и показывает соответствующую страницу, но, конечно же, Apache отправляет заголовок 404.