我已经看到了很多这样的答案,但由于某种原因,他们都没有为我工作。我有一个网站上的表单,需要将数据发布到一个php文件(然后发送一个PHPMailer)。HTACCESS和AJAX POST
我希望网站强制WWW并将.php扩展名从URL中删除。在调试这个问题时,我已经对我的.htaccess文件做了一些修改。
我也注意到,当我转到我网站上的一个页面时,例如http://example.com.au/contact
,那么WWW不会被强制到url的开头。但如果我去http://example.com.au
(索引),那么它将更改为http://www.example.com.au
。我怎样才能改变.htaccess,以便我可以让所有的子页面强制WWW,同时不删除POST值?
我目前的.htaccess:
RewriteEngine on
# Remove .php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
# Force WWW
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L]
我原本有一个R=301
标签与第二RewriteRule
的[L]
,但显然这是失去POST值的原因,所以我删除了。我也尝试了有和没有
RewriteCond %{REQUEST_METHOD} !POST
之前,两者之一,而不是规则。
这里是我的表的简化版本(不包括自举类等):
<div class="form_container">
<form name="contactForm" id="contact_form" action="http://www.*MyURL*.com.au/scripts/contact_send" method="POST">
<div class="row">
<div>
<label for="inputFirstName">First Name: </label>
<input name="firstname" id="inputFirstName" type="text" required>
</div>
<div>
<label for="inputSurname">Surname: </label>
<input name="surname" id="inputSurname" type="text" required>
</div>
</div>
<div class="row">
<div>
<label for="inputEmail">Email: </label>
<input name="email" id="inputEmail" type="email" required>
</div>
<div>
<label for="inputPhone">Phone (optional): </label>
<input name="phone" id="inputPhone" type="tel">
</div>
</div>
<div class="row">
<div>
<input type="submit" name="submit" value="Send">
</div>
</div>
</form>
</div>
我已经试过了表单操作,既没有php扩展,并具有和不完整URL,全部返回空数组var_dump($_POST)
。
表单中的所有输入都有name
标签和id
标签。
jQuery的(W /验证)脚本:
$('#contact_form').validate({
...
submitHandler: function(form){
$('.form_container').html('<div class="loader"></div>');
$('html, body').animate({scrollTop: $('#header').height()}, 500);
$.ajax({
url: form.action,
type: form.method,
data: $('#contact_form').serialize(),
success: function(data) {
$('.form_container').html(data);
}
});
}
});
验证器不工作;表单将不会提交空输入。
为了调试的目的,我已经改变了contact_send.php
这样:
<?php
var_dump($_POST);
?>
我真的希望有人能帮助我,我失去了我的智慧解决这个问题!
谢谢!
你是我的救星。我不能够感谢你!在删除表单之前,您完全正确地对数据进行序列化。非常感谢! – jacobian