2009-06-13 21 views
0

Ich versuche ein Formular an die URL "localhost/login" zu senden. In meinem Anmeldeverzeichnis habe ich eine Datei index.php mit dem Code verwende ich zu debuggen, dass die Post funktioniert:form post zu mod_rewrite url

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

ich eine .htaccess-Datei in meinem Login-Verzeichnis haben:

RewriteEngine on 
RewriteRule ^. index.php [L] 

das Problem ist, wenn ich auf localhost Post/anmelden meine Firebug zeigt, dass die anfängliche POST durchläuft, aber dann leitet als GET-Anforderung ohne POST-Variablen login.php ...

POST http://localhost/login?password=test_password&remember=true&username=test_username 301 Moved Perma nent

GET http://localhost/login/ 200 OK

Irgendwelche Tipps wäre toll.

Dank

+0

Woher kommt der login.php-Teil? Meinst du index.php? –

+0

ya sorry, sollte es sein: "aber dann umleiten an login/index.php als eine GET-Anfrage ohne POST-Variablen ..." –

Antwort

0

Auf der Grundlage meiner Forschung sollte POST erlaubt sein als POST neu geschrieben werden und kommen, ist jede Art von Problem wahrscheinlich auf etwas anderes schief läuft, wie Sie Ihren Code.

Btw, in der Regel von den GET-Parameter zu halten gestrippt wird, verwenden Sie die QSA Richtlinie:

[QSA,L]

1

Ich habe eine Bedingung in meiner .htaccess-Datei:

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

die schreibt alle Links ohne das Präfix "www" um. Wie folgt aus:

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

Und das war das Problem, das ich hatte:

in meiner Form habe ich vergessen, die "www" zu setzen und so meine POST-Array leer war.

Putting das www in Form wie folgt aus:

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

statt:

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

das Problem für mich fixiert.