ОБНОВЛЕНО: mod_rewrite и метод POST в проблеме PHP, $ _POST всегда пуст - PullRequest
1 голос
/ 21 мая 2011

Я использую mod_rewrite для отображения адреса страниц более читабельным способом, вместо

http://127.0.0.1/index.php?article=contact

я получил

http://127.0.0.1/contact

при отправке формы все обрабатывается index.php, поэтому я направляю действие формы на отображаемую в данный момент страницу, но $ _POST всегда пуст, открывающийся блок формы выглядит следующим образом

<form method="post" action="http://127.0.0.1/contact">

до того, как я запустил mod_rewrite, все работало замечательно, но теперь кажется, что mod_rewrite вызывает проблемы.

Скажите, пожалуйста, что нужно изменить в PHP, конфигурационных файлах Apache или что еще нужно сделать, чтобы $ _POST работал с rewrite endabled

Вот правила перезаписи, которые были запрошены

RewriteEngine on
#RewriteCond %{HTTP_HOST} !^www\.
#RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule \.(css|jpe?g|gif|png)$ - [L]
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?page=$1&va=$2 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?page=$1&va=$2&vb=$3 [L]

Заранее спасибо

Amir

1 Ответ

2 голосов
/ 21 мая 2011

Это правило перезаписи выполняет перенаправление , поэтому браузер вместо этого перейдет по этому адресу с запросом GET; поэтому данные POST всегда будут пустыми.

RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...