将帖子发布到mod_rewrite网址

时间:2009-06-13 02:56:01

标签: mod-rewrite forms post

我正在尝试将表单提交到网址“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 OK

任何提示都会很棒。

由于

2 个答案:

答案 0 :(得分:1)

我的.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"

为我解决了这个问题。

答案 1 :(得分:0)

根据我的研究,POST应该被允许重写并作为POST出现,任何类型的问题都可能是由于其他问题,例如你的代码。

顺便说一下,为了防止GET参数被剥离,请使用QSA指令:

[QSA,L]