Форма сообщения для URL mod_rewrite - PullRequest
0 голосов
/ 13 июня 2009

Я пытаюсь отправить форму по 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 постоянно перемещено

GET http://localhost/login/ 200 ОК

Любые советы будут великолепны.

Спасибо

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

В моем файле .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"

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

0 голосов
/ 13 июня 2009

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

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

[QSA,L]

...