我已經看到了很多這樣的答案,但由於某種原因,他們都沒有爲我工作。我有一個網站上的表單,需要將數據發佈到一個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