Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Сообщение формы для URL-адреса mod_rewrite

Автор вопроса: CommunityОтветов: 2

Я пытаюсь отправить форму по URL-адресу "localhost/login". Внутри моего каталога входа у меня есть файл index.php с кодом, который я использую для отладки работы сообщения:

<?php
echo $_POST['username'];
?>

У меня есть файл .htaccess в моем каталоге входа:

RewriteEngine on
RewriteRule ^. index.php [L]

Проблема в том, что когда я отправляю сообщение на localhost/login, мой firebug показывает, что начальный POST проходит, но затем перенаправляется на login.php как запрос GET без каких-либо переменных POST...

POST http://localhost/login?password=test_password&remember=true&username=test_username 301 Перемещено Постоянно

ПОЛУЧИТЬ http://localhost/login/ 200 OK

Любые советы были бы замечательными.

Спасибо

  • Откуда взялась часть login.php? Вы имеете в виду index.php? Artem Russakovskii 13.06.2009
  • извините, так и должно быть: но затем перенаправляется на login/index.php как GET-запрос без каких-либо POST-переменных... 13.06.2009

formspostmod-rewrite

Ответы

Ответ 1 · рейтинг 1 · Erik Čerpnjak

У меня есть условие в моем файле .htaccess:

RewriteBase /
RewriteCond %{HTTP_HOST} !^www(.*)
RewriteRule ^(.*) http://www.%{HTTP_HOST}%{REQUEST_URI}

который перезаписывает любые ссылки без префикса "www". Как это:

http://mysite.com to http://**www**.mysite.com

И это была проблема, которая у меня была:

в моей форме я забыл поставить "www", поэтому мой массив POST был пуст.

Поместите www в форму следующим образом:

action="http://www.mysite.com/login"

вместо:

action="http://mysite.com/login"

исправил проблему для меня.

Ответ 2 · Artem Russakovskii

Основываясь на моем исследовании, POST следует разрешить переписывать и выводить как POST, любая проблема, вероятно, связана с чем-то еще, что идет не так, как с вашим кодом.

Кстати, в общем случае, чтобы параметры GET не удалялись, используйте QSA директива:

[QSA,L]

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы