PHP не будет получать запросы POST в /directory/only в/directory/index.php

Когда запрос POST отправляется на " http://domain.com/directory/, данные POST не принимаются. Но если он отправлен на " http://domain.com/directory/index.php, он будет получен.

Как я могу заставить его работать, когда вызывается только каталог? Спасибо!

Ответ 1

Если вы используете Apache, проверьте, включен ли модуль mod_dir и настроен ли он правильно. Это содержимое моего dir.conf:

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

Ответ 2

Пробовали ли вы использовать такой инструмент, как HttpFox для Firefox, чтобы убедиться, что если вы отправляете запрос в каталог самостоятельно, вы перенаправляетесь? Я знаю, что перенаправление может убить запрос POST, поскольку он преобразуется в запрос GET.

Ответ 3

Как сказал Lucanos, перенаправление веб-сервера на index.php? Данные POST могут быть "потеряны" между страницами, если вы перенаправляете. Попробуйте GET и проверьте, заканчивается ли URL с правильными данными.

Ответ 4

Создайте файл .htaccess внутри/directory/с этим контентом

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Он указывает серверу направить весь запрос, который физически невозможен (так как для этого запроса не существует файла или папки) для index.php, преимущество этого в том, что файлы .css.js,.jpg не будут перенаправлены index.php.

Ответ 5

Если каталог содержит index.html вместе с index.php, просто переименуйте файл index.html, иначе удалите файл, потому что если вы укажете путь только к каталогу, index.html всегда будет включен, независимо от того, будет ли index.php еще существует в том же каталоге.